【发布时间】:2019-07-05 02:54:07
【问题描述】:
我正在尝试根据存储在前一行中但来自不同列的值来更新给定列的值。
我可以使用适用于小型数据集的 for 循环来完成此操作,但在处理大型 DT(例如超过 1MM 行)时,此过程当然需要很长时间。下面是一个小例子:
library(data.table)
DT <- data.table(Year = 2019:2038, Area = 500, Cos = c(0,0,0,150,0,0,
0,0,350,0,0,0,0,0,0,0,120,200,80,100), Rep = c(0,0,0,0,150,0,0,0,0,
350,0,0,0,0,0,0,0,0,0,0), Calc = c(500,500,500,500,500,500,500,500,
500,500,500,500,500,500,500,500,500,380,180,100))
基本上,我想复制计算如下的“Calc”列:
1) 如果行 == 1
Calc[1] == Area[1]
2) 对于行 > 1
Calc[i] == Rep[i] + Calc[i-1] - Cos[i-1]
如果有任何反馈,我将不胜感激
非常感谢
【问题讨论】:
标签: r data.table