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?