假设有:
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]
答案 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