【发布时间】:2018-01-08 20:20:58
【问题描述】:
如何总结一个data.table创建名称来自字符串或字符的新列?
可重现的例子:
library(data.table)
dt <- data.table(x=rep(c("a","b"),20),y=factor(sample(letters,40,replace=T)), z=1:20)
i <- 15
new_var <- paste0("new_",i)
# my attempt
dt[, .( eval(new_var) = sum( z[which( z <= i)] )), by= x]
# expected result
dt[, .( new_15 = sum( z[which( z <= i)] )), by= x]
> x new_15
> 1: a 128
> 2: b 112
这种使用eval() 的方法可以很好地使用:= (see this SO questions) 创建一个新列,但我不知道为什么它在汇总data.table 时不起作用。
【问题讨论】:
标签: r data.table