如何引用不在data.table标头中的变量?

时间:2018-11-19 18:06:48

标签: r data.table

我有一个data.table DT,其中包含2列。

library(data.table)
DT = data.table(a = c(1, 2), b = c(2, 3))

我有一个变量,名为i

i <- "A"

现在,我想使用i确定如何在data.table中创建新列。如果是i == "A",我想创建一个新列,即a*b

但是,如果我使用DT[ , NEW := ifelse(i == "A", a*b, a)]

结果在下面,这不是我想要的。

   a b NEW
1: 1 2   2
2: 2 3   2

我正在寻找的结果是

   a b NEW
1: 1 2   2
2: 2 3   6

我知道如果生成一个名为i的新列,我将得到想要的东西。

DT[ , i := i]
DT[ , NEW := ifelse(i == "A", a*b, a)]
   a b i NEW
1: 1 2 A   2
2: 2 3 A   6

是否有一种简单的方法来引用变量i,而又不生成名为i的新列?

谢谢

0 个答案:

没有答案