我想做的是这样的事情:
DT[,diffs:=c(NA, diff(SPY_mid))]
但在脚本中,事先不知道
DT[,diffs:=c(NA, diff(paste('SPY', '_mid', sep='')))]
似乎不起作用。这也不是:
DT[,'diffs':=c(NA, diff(paste('SPY', '_mid', sep=''))), with=F]
答案 0 :(得分:6)
你可能正在寻找这个(注意括号):
dt = data.table(a = 1:5)
newcol = 'b'
dt[, (newcol) := c(NA, diff(a))]
dt
# a b
#1: 1 NA
#2: 2 1
#3: 3 1
#4: 4 1
#5: 5 1
或许这个:
oldcol = 'a'
dt[, (newcol) := c(NA, diff(get(oldcol)))]