问题描述
我想使用 get 函数来合并两个 data.tables 来调用一个特定的变量名,但它不起作用:
x = data.table("class" = c(1,2,3,4,5),"series" = c("a","aaa","cc","a","a"))
y = data.table("class2" = c(1,5,"range" = c(11,11,13,8))
var = "class"
x[y,on = .(get(var) = class2),range := i.range]
我收到以下错误:
错误:“x[y,on = .(get(var) ="
谁能帮帮我?谢谢
解决方法
使用 setNames
可以更轻松地创建命名向量,其中名称将是 x 数据中的列名
x[y,range := i.range,on = setNames('class2',var)]
-输出
x
# class series range
#1: 1 a 11
#2: 2 aaa 11
#3: 3 cc 4
#4: 4 a 13
#5: 4 aaa 13
#6: 5 a 8