我想用data.table中的特定列的其他值替换NA。 我试过下面的链接但是出现了一些错误。
How to replace NA values in a table for selected columns? data.frame, data.table
我使用的代码是
df<-data.table(aa<-(1:4),ba<-c(NA,1,3,4),ca<-c(NA,"2012-01-02","2012-02-02","2012-03-02"))
df[is.na(get(ca)),(ca):="2012-04-01"]
我收到错误消息:get(c)中出错:object&#39; NA&#39;找不到
但如果我使用
df[is.na(ca),(ca):="2012-04-01"]
它会返回我不想要的结果。
任何人都可以帮助我吗?
由于
答案 0 :(得分:6)
如果我们使用正确的列名称,它将起作用,我们不需要get
。
df[is.na(ca), ca:= "2012-04-01"]
df
# aa ba ca
#1: 1 NA 2012-04-01
#2: 2 1 2012-01-02
#3: 3 3 2012-02-02
#4: 4 4 2012-03-02
在data.table
来电中,我们使用=
代替<-
。另外,正如@Frank所提到的,分配(ca)
和ca
是不同的,因为前者可以是vector
字符串,可用于为新列创建名称。
df<-data.table(aa=(1:4),ba=c(NA,1,3,4),
ca=c(NA,"2012-01-02","2012-02-02","2012-03-02"))