我有一个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
的新列?
谢谢