【发布时间】:2021-09-07 15:13:50
【问题描述】:
是否可以在新创建的列上使用 shift ?在 for 循环编程中,我们可以从前一行访问新列的值。例如如下......我在 shift 语句中得到一个错误,因为即使“c”应该已经计算出来,“c”也不存在。
x <- data.table(a=c(1,2,3), b=c(4,5,6))
x[,':='(c=a*b, d=shift(c,-1))]
【问题讨论】:
-
你有不想做
x[,c:=a*b][, d:=shift(c,-1)]的理由吗? -
我想有条件地处理 c 的值并用它来导出 d。所以换句话说,下面的解决方案允许保留中间值,然后用它来处理下一行。
标签: r data.table