按名称引用`data.table`列

时间:2014-05-31 18:04:23

标签: r data.table

假设有:

DT = data.table(a=1, b=2, "a+b"=8)

并且引用col="a+b"

的第三列的变量DT

如何通过引用对该列执行操作?我们想要col乘以2,所以在上面的示例中,结果应该是8*2=16,而不是(1+2)*2=6

例如,这显然不起作用:

DT[, c:=as.name(col)*2]

1 个答案:

答案 0 :(得分:6)

听起来你正在寻找get

DT = data.table(a=1, b=2, "a+b"=8)
col = "a+b"
DT[, get(col) * 2]
# [1] 16
DT[, c := get(col) * 2]
DT
#    a b a+b  c
# 1: 1 2   8 16