Ich möchte <NA>
Werte in einer Faktoren-Spalte mit einem gültigen Wert ersetzen. Aber ich kann keinen Weg finden. Dieses Beispiel dient nur zur Demonstration. Die ursprünglichen Daten stammen aus einer fremden CSV-Datei, mit der ich mich befassen muss.ersetzen <NA> in einer Faktor-Spalte in R
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)
könnte wie folgt aussehen
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
Jetzt möchte ich die <NA>
Werte mit einer Nummer ersetzen.
df[is.na(df$a), 'a'] <- 88
In `[<-.factor`(`*tmp*`, iseq, value = c(88, 88)) :
invalid factor level, NA generated
Ich glaube, ich habe ein grundlegendes R-Konzept über Faktoren verpasst. Bin ich? Ich kann nicht verstehen, warum es nicht funktioniert. Ich denke, invalid factor level
bedeutet, dass 88
ist keine gültige Ebene in diesem Faktor, richtig? Also muss ich der Faktorspalte sagen, dass es eine andere Ebene gibt?
Ich verstehe nicht, warum Sie die Zeile des Codes haben, df $ a <- as.factor (df $ a), warum willst du das c Alter als Faktoren? – user1945827
@buhtz: Wenn man nicht einen Wert von '0' im 'data.frame' Aufruf ausprobiert, kann man das Problem nicht replizieren, vielleicht besser zu 'set.seed()'. – 000andy8484
@ 000andy8484 Danke für diesen Hinweis. Ich werde das nächste Mal an meine Notizen anheften. – buhtz