包括某个时间段R的趋势变量

时间:2016-03-21 18:35:16

标签: r trend

我一直在搜索,但我不知道如何在R中执行以下操作: 我有600个面板数据集,其中包含一个标识横截面(组)的变量,时间(时间)和一个从某个时间段开始取值为1的虚拟变量(虚拟)。这段时间因我所拥有的多个文件而异。换句话说,在我的所有文件中,dummy上的值为1的时间总是不同的(可以是36,37,38,320,...)。虚拟占1的时间在每个文件中的组之间始终相同。 我需要添加另一个变量(趋势),这是一个新的趋势变量,从第一次虚拟等于1的时刻(时间)开始等于1。 小组时间虚拟趋势 1 36 0 0 1 37 1 1 1 38 1 2 2 36 0 0 2 37 1 1 2 38 1 2

1 个答案:

答案 0 :(得分:1)

以下是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。