Wie ersetze ich NA-Werte in einer Tabelle * für ausgewählte Spalten *? Datenrahmen, Datentabelle

Es gibt viele Beiträge zum Ersetzen von NA-Werten. Mir ist bekannt, dass man NAs in der folgenden Tabelle / dem folgenden Frame durch Folgendes ersetzen könnte:

x[is.na(x)]<-0

Aber was ist, wenn ich es nur auf bestimmte Spalten beschränken möchte? Lassen Sie mich Ihnen ein Beispiel zeigen.

Beginnen wir zunächst mit einem Datensatz.

set.seed(1234)
x <- data.frame(a=sample(c(1,2,NA), 10, replace=T),
                b=sample(c(1,2,NA), 10, replace=T), 
                c=sample(c(1:5,NA), 10, replace=T))

Welches gibt:

    a  b  c
1   1 NA  2
2   2  2  2
3   2  1  1
4   2 NA  1
5  NA  1  2
6   2 NA  5
7   1  1  4
8   1  1 NA
9   2  1  5
10  2  1  1

Ok, ich möchte den Ersatz nur auf die Spalten 'a' und 'b' beschränken. Mein Versuch war:

x[is.na(x), 1:2]<-0

und:

x[is.na(x[1:2])]<-0

Welches funktioniert nicht.

Meine data.table versuchen, woy<-data.table(x)ging offenbar nie zur Arbeit:

y[is.na(y[,list(a,b)]), ]

Ich möchte Spalten innerhalb des is.na-Arguments übergeben, aber das würde offensichtlich nicht funktionieren.

Ich möchte dies in einem data.frame und einer data.table tun. Mein Endziel ist es, das 1: 2 in 'a' und 'b' zu 0: 1 umzukodieren, während 'c' so bleibt wie es ist, da es keine logische Variable ist. Ich habe ein paar Spalten, also möchte ich es nicht einzeln machen. Und ich möchte nur wissen, wie das geht.

Hast du irgendwelche Vorschläge?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage