Zeilen löschen, wenn bestimmte Variable = NA ist
Verfasst: Di Aug 29, 2017 9:21 pm
Hallo R-Forum,
vorab direkt die Info, dass es sich bei meiner Frage (in meinem Fall) um eine Hausarbeit handelt und es nicht eilt!
Ich habe aus einen reduzierten Datensatz aus einem anderen Datensatz erstellt. Die Reduktion basiert darauf das var1 und var2 = 1 sind (siehe Code unten). Der Datensatz wird auch ohne Fehler erstellt, jedoch hat R die Zeilen in denen für var1 oder var2 = NA steht mit übernommen. Warum ist das so? Kann NA nicht direkt adressiert werden, wie ein numerischer Wert?
Folgende Idee, mit der ich gehofft hatte die Zeilen mit "NA" systematisch auszuschließen, hat leider nicht funktioniert (wäre auch zu einfach gewesen
):
Meine Problem:
Ich möchte aus einem Datensatz der aus knapp 9000 Beobachtungen und 10 Variablen besteht, bestimmte Zeilen löschen, wenn eine von zwei Variablen = NA ist. Mit "complete.cases" wird jede Zeile gelöscht in der ein NA auftritt, egal für welche Variable.
Ich hatte die Hoffnung, dass ich mit folgendem Befehl die betroffenen Zeilen in einem Objekt speichern und anschließend vom Datensatz abziehen kann, was aber nicht funktioniert hat:
R gibt folgenden Fehler aus: "Error in `[.data.frame`(dat2, (dat2$var1 == "NA") & : undefined columns selected".
Danke im Voraus für eure Hilfe!
vorab direkt die Info, dass es sich bei meiner Frage (in meinem Fall) um eine Hausarbeit handelt und es nicht eilt!
Ich habe aus einen reduzierten Datensatz aus einem anderen Datensatz erstellt. Die Reduktion basiert darauf das var1 und var2 = 1 sind (siehe Code unten). Der Datensatz wird auch ohne Fehler erstellt, jedoch hat R die Zeilen in denen für var1 oder var2 = NA steht mit übernommen. Warum ist das so? Kann NA nicht direkt adressiert werden, wie ein numerischer Wert?
Code: Alles auswählen
dat2 <- dat1[(dat1$var1 == "1") &
(dat1$var2 == "1"), ]

Code: Alles auswählen
dat2 <- dat1[(dat1$var1 == "1") &
(dat1$var1 != "NA") &
(dat1$var2 == "1") &
(dat1$var2 != "NA"), ]
Ich möchte aus einem Datensatz der aus knapp 9000 Beobachtungen und 10 Variablen besteht, bestimmte Zeilen löschen, wenn eine von zwei Variablen = NA ist. Mit "complete.cases" wird jede Zeile gelöscht in der ein NA auftritt, egal für welche Variable.
Code: Alles auswählen
dat2 <- dat2[complete.cases(dat2), ] # Löscht alle Zeilen in denen ein NA steht, egal bei welcher Variable
Code: Alles auswählen
drops <- dat2[(dat2$var1 == "NA") & (dat2$var2 == "NA")]
Danke im Voraus für eure Hilfe!