如何通过变量将列名传递给data.table中的函数?

时间:2016-12-20 23:24:33

标签: r data.table

我想将函数应用于名称在变量中的某些列。我可以用eval()选择它,但我不能将它传递给函数。

library(data.table)
dt <- data.table(col1 = 1:10)
mnem <- colnames(dt)[1]

# This works fine
dt[, eval(mnem)]

# None of these works
dt[, sum(mnem)]
dt[, sum(mnem), with = FALSE]

dt[, sum(eval(mnem))]
dt[, sum(eval(mnem)), with = FALSE]

2 个答案:

答案 0 :(得分:0)

民众已经说出了正确的答案,或者你可以做到:

dt[, sum(eval(parse(text = mnem)))]

答案 1 :(得分:0)

@“ R for the Win”的形式对于生成带有有意义的分组标题的汇总的汇总很有用(必要吗?)。

B <- C.