R 按名称引用`data.table`列

R 按名称引用`data.table`列,r,data.table,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] 听起来你在寻找get: DT = data.table(a=1, b=2, "a+b"=8) col = "a+b" DT[, get(col) * 2] # [1] 16

假设有:

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]

听起来你在寻找
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

我预测在
data.table
结构的列名中使用R运算符将“走到一个坏的尽头”。您将得到更难理解且有缺陷的代码。Ups已经在各地的列名中使用R运算符,而且确实感觉很复杂且有缺陷:)我们通过做或听更有经验的用户学习,谢谢!