将变量按名称传递到赋值的右侧:=在data.table中

时间:2012-12-09 19:26:59

标签: r data.table

我想按名称将变量传递给data.table X,如下所示:

myfunc <- function(varname){
  X[, newVar:= varname]
}
myfunc("oldVar")

我应该怎么做?我使用quote()尝试了eval(),但它没有用。

1 个答案:

答案 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