在R中的data.table中使用NSE

在R中的data.table中使用NSE,r,data.table,nse,R,Data.table,Nse,我有一个名为client的data.table,它有以下列: “位置”“客户ID”“性别”“年龄”“开始日期”“ag1”“ag2” 有age变量和它的两个分解版本:ag1和ag2 现在,我想使用ag1因子分解对数据进行分组: 年龄组是的,你的问题似乎与NSE有关。您可以通过在中使用字符向量名称,而不是使用() agegroup根据您在评论中的说明,您应该能够使用get() 库(data.table) 年龄组重点是,我不想使用字符向量,因为我的输入将发生变化(作为函数的一部分)。如果我想按ag2

我有一个名为
client
的data.table,它有以下列:

“位置”“客户ID”“性别”“年龄”“开始日期”“ag1”“ag2”
age
变量和它的两个分解版本:
ag1
ag2

现在,我想使用
ag1
因子分解对数据进行分组:


年龄组是的,你的问题似乎与NSE有关。您可以通过
中使用字符向量名称,而不是使用


agegroup根据您在评论中的说明,您应该能够使用
get()

库(data.table)

年龄组重点是,我不想使用字符向量,因为我的输入将发生变化(作为函数的一部分)。如果我想按ag2对数据进行分组,我只需更改
年龄组。我不明白您为什么需要
sym
。你能举例说明你想做什么吗?在我的示例(刚刚编辑)中,如果您需要在
i
j
维度的
[…]
中使用您的变量,您可以使用年龄组,一个示例将有助于您的帖子非常好,顺便说一句,非常有帮助谢谢,很高兴它能帮助他人!
library(data.table)
agegroup <- 'ag1'
clientTotal <- client[,.(NOinsureds=length(clientID)), by = .(gender, age = get(agegroup), startYear)]
library(data.table)
cars <- data.table(mtcars)
strBy <- "carb"
cars[,.(avg.mpg = mean(mpg)), by = .(gear,Carborator = get(strBy))]
    gear Carborator  avg.mpg
 1:    4          4 19.75000
 2:    4          1 29.10000
 3:    3          1 20.33333
 4:    3          2 17.15000
 5:    3          4 12.62000
 6:    4          2 24.75000
 7:    3          3 16.30000
 8:    5          2 28.20000
 9:    5          4 15.80000
10:    5          6 19.70000
11:    5          8 15.00000