Reemplazar <NA> en una columna de factor

Quiero reemplazar<NA> valores en una columna de factores con un valor válido. Pero no puedo encontrar un camino. Este ejemplo es solo para demostración. Los datos originales provienen de un archivo csv externo con el que tengo que tratar.

df <- data.frame(a=sample(0:10, size=10, replace=TRUE),
                 b=sample(20:30, size=10, replace=TRUE))
df[df$a==0,'a'] <- NA
df$a <- as.factor(df$a)

Podría verse así

      a  b
1     1 29
2     2 23
3     3 23
4     3 22
5     4 28
6  <NA> 24
7     2 21
8     4 25
9  <NA> 29
10    3 24

Ahora quiero reemplazar el<NA> valores con un número.

df[is.na(df$a), 'a'] <- 88
In `[<-.factor`(`*tmp*`, iseq, value = c(88, 88)) :
  invalid factor level, NA generated

Creo que me perdí un concepto fundamental de R sobre los factores. Soy yo? No puedo entender por qué no funciona. Yo creo queinvalid factor level significa que88 no es un nivel válido en ese factor, ¿verdad? ¿Entonces tengo que decirle a la columna de factores que hay otro nivel?

Respuestas a la pregunta(4)

Su respuesta a la pregunta