r data.table新列对set()不可见

时间:2016-08-25 08:12:55

标签: r data.table

我遇到了set()到#34; old"的不同行为。和"新" data.table中的列

情况非常简单,我可能会错过一些非常基本的东西。

library(data.table)

id <- c(1:10) 
x1 <- sample(1:10, 10, replace=T)
x2 <- sample(1:10, 10, replace=T)
df<-data.frame(id,x1,x2)
dt<-data.table(df)
setkeyv(dt,c("id"))

&#34; old&#34;列集效果很好

set(dt,i=(which(x1>5)),j="x2",value=0)

当我添加新列时,set

无法识别它
dt[,x4:=x1+x2]
set(dt,i=(which(x4>5)),j="x2",value=0)

Error in which(x4 > 5) : object 'x4' not found

查看dt的结构,它包含新列,我可以使用它,计算它的平均值等但是set()没有看到它。为什么呢?

0 个答案:

没有答案