1

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

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

我应该怎么做?我试过quote()eval(),但没有用。

4

1 回答 1

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
于 2012-12-09T19:33:23.747 回答