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

ttp71kqs  于 2023-04-09  发布在  其他
关注(0)|答案(1)|浏览(92)

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

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

我应该怎么做呢?我已经用eval()尝试了quote(),但是它不起作用。

zdwk9cvp

zdwk9cvp1#

将列作为向量查找,并将其用于赋值:

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

相关问题