有很多关于替换NA值的帖子.我知道可以用以下内容替换下表/框架中的NAs:
x[is.na(x)]<-0
但是,如果我想把它限制在某些列上呢?让我给你举个例子.
首先,让我们从一个数据集开始.
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))
它给出:
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
好的,我只想把替换限制在"a"和"b"列.我的try 是:
x[is.na(x), 1:2]<-0
以及:
x[is.na(x[1:2])]<-0
这是行不通的.
我的数据.表try ,其中y<-data.table(x)
,显然永远不会起作用:
y[is.na(y[,list(a,b)]), ]
我想通过is内部的列.这是一个争论,但显然是行不通的.
我想在一个数据模型中这样做.框架和数据.桌子我的最终目标是重新编码"a"和"b"中的1:2到0:1,同时保持"c"不变,因为它不是逻辑变量.我有很多专栏,所以我不想一个接一个地写.我只是想知道怎么做.
你有什么建议吗?