包括特定时间段 R 的趋势变量

Include trend variable from certain time period R

我已经搜索了一段时间,但我没有找到如何在 R 中执行以下操作:

我有 600 个面板数据集,其中包含一个标识横截面的变量 (group)、时间 (time) 和一个虚拟变量 (dummy)从某个时间段开始,值为 1。这个时间段因我拥有的多个文件而异。换句话说,在我所有的文件中,从 dummy 上的 period 取值 1 的时间总是不同的(可以是 36,37,38,320,...)。 dummy 取 1 的时间在每个文件中的组中始终相同。

我需要添加另一个变量 (trend),它是一个新的趋势变量,从时刻 (time) 开始等于 1,而 dummy 等于 1第一次。

group   time    dummy   trend
1        36      0       0
1        37      1       1
1        38      1       2
2        36      0       0
2        37      1       1
2        38      1       2

这是 data.table

的答案
library(data.table)
test_dt<-data.table(group=c(rep(1,3),rep(2,3)),time=c(36:38,36:38),dummy=c(0,1,1,0,1,1))

test_dt[,trend:=cumsum(dummy),by=group] #your operation

 group time dummy trend
1:     1   36     0     0
2:     1   37     1     1
3:     1   38     1     2
4:     2   36     0     0
5:     2   37     1     1
6:     2   38     1     2

这取决于您的虚拟对象为 0/1,数据正在排序,并且虚拟对象在该组中第一次变为 1 后始终为 1。