最佳答案
有很多关于更换 NA 值的帖子。我知道可以用以下表格/框架取代新来港定居人士:
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’列。我的尝试是:
x[is.na(x), 1:2]<-0
以及:
x[is.na(x[1:2])]<-0
但是没用。
我的 data.table 尝试,也就是 y<-data.table(x)
,显然是行不通的:
y[is.na(y[,list(a,b)]), ]
我想在 is.na 参数中传递列,但显然不行。
我想在一个 data.frame 和一个 data.table 中完成这个操作。我的最终目标是在‘ a’和‘ b’中将1:2重新编码为0:1,同时保持‘ c’的原样,因为它不是逻辑变量。我有很多专栏,所以我不想一个一个来。我只是想知道该怎么做。
你有什么建议吗?