Comment remplacer NA les valeurs dans un tableau pour les colonnes sélectionnées

Il y a beaucoup de posts sur le remplacement de NA valeurs. Je suis conscient que l'on pourrait remplacer NAs dans le tableau suivant/cadre avec le texte suivant:

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

Mais, que faire si je veux de la restreindre à seulement certaines colonnes? Laissez-moi vous montrer un exemple.

D'abord, nous allons commencer avec un ensemble de données.

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))

Qui donne:

    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, donc je ne veux limiter le remplacement de colonnes 'a' et 'b'. Ma tentative a été:

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

et:

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

Qui ne fonctionne pas.

Mes données.tableau tentative, où y<-data.table(x), a de toute évidence ne marchera jamais:

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

Je veux passer colonnes à l'intérieur de l'est.na argument, mais qui de toute évidence ne fonctionne pas.

Je voudrais faire cela dans un ensemble de données.cadre et un ensemble de données.table. Mon objectif final est de recoder le 1:2 0:1 dans 'a' et 'b', tout en gardant 'c' la façon dont il est, puisqu'il n'est pas une variable logique. J'ai un tas de colonnes, donc je ne veux pas le faire un par un. Et, je voudrais juste savoir comment faire cela.

Avez-vous des suggestions?

InformationsquelleAutor jnam27 | 2013-10-15