我想按名称将变量传递给data.table X,如下所示:
myfunc <- function(varname){
X[, newVar:= varname]
}
myfunc("oldVar")
我应该怎么做?我使用quote()
尝试了eval()
,但它没有用。
答案 0 :(得分:3)
将列作为向量查找,并将其用于赋值:
myfunc <- function(varname){
X[, newVar := X[[varname]]]
}
X <- data.table(oldVar=1:4, b=5:8)
> myfunc("oldVar")
oldVar b newVar
1: 1 5 1
2: 2 6 2
3: 3 7 3
4: 4 8 4