Ich habe einen Datensatz mit vielen numerischen Variablen und einer Zeichenvariablen, die angibt, ob niedrige Werte für diese Beobachtung unterdrückt werden. In Beobachtungen, in denen Werte nicht unterdrückt werden, möchte ich NAs 0 (nur für bestimmte Variablen) ersetzen, und ich kann es nicht herausfinden. Das sind meine Daten:Ersetzen von NAs gemäß den Bedingungen
Was ich tun möchte, ist die Änderung von NA auf 0 in Var 1, wenn unterdrückt = keine. Ich habe versucht,
df$Var1<-if (df$suppressed=='none'&is.na(df$Var1)) 0
else df$Var1
und bekam
Error in if (df$suppressed == "none" & is.na(df$Var1)) 0 else df$Var1 :
argument is of length zero
Gibt es etwas falsch mit meiner, wenn else-Anweisung, oder gibt es eine andere Möglichkeit, dies zu tun?
Hier ist die Struktur meiner Daten:
structure(list(suppressed = structure(c(2L, 2L, 2L, 2L, 1L, 1L, 2L, 3L, 2L, 2L), .Label = c("full", "none", "partial"), class = "factor"), var1 = c(2, NA, 3, NA, 2, 3, 3, NA, 2, NA), var2 = c(6, 6, 7, NA, 6, 6, NA, 6, 7, NA)), .Names = c("suppressed", "var1", "var2"), row.names = c(NA, -10L), class = "data.frame")
Nur tun 'df [df $ unterdrückt == 'keine' & is.na (df $ var1)," var1 "] <- 0' –