可能重复:
可变地选择/分配data.table中的字段
在下面的示例中,我创建了一个列名为"x"和"v"的数据表
library('data.table')
DT <- data.table(x = c("b","b","b","a","a"), v = rnorm(5))
Run Code Online (Sandbox Code Playgroud)
我可以通过以下方式访问列'x'的值:
DT[ , x]
# [1] "b" "b" "b" "a" "a"
Run Code Online (Sandbox Code Playgroud)
但是如果我想通过传递变量来访问它,它就不起作用
temp <- "x"
DT[ , temp]
# [1] "x"
Run Code Online (Sandbox Code Playgroud)
将有多个列,我将只为其中几个选择值.我将通过R模块提供这些列名.
没关系,我明白了,它应该是:
DT[ , get(temp)]
Run Code Online (Sandbox Code Playgroud) data.table如果变量名存储在字符向量中,如何引用变量?例如,这适用于data.frame:
df <- data.frame(col1 = 1:3)
colname <- "col1"
df[colname] <- 4:6
df
# col1
# 1 4
# 2 5
# 3 6
Run Code Online (Sandbox Code Playgroud)
如何使用或不使用:=表示法对data.table执行相同的操作?显而易见的事情是dt[ , list(colname)]行不通的(我也没想到).