我想将 NA 替换为 data.table 中特定列的其他值。 我尝试了下面的链接,但出现了一些错误。
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) 中出错:未找到对象“NA”
但是如果我使用
df[is.na(ca),(ca):="2012-04-01"]
它返回了我不想要的结果。
有人可以帮助我吗?
谢谢
最佳答案
如果我们使用正确的列名,它就会起作用,并且我们不需要 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"))
关于将 N/A 替换为 data.table 中的其他值会返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35090595/