用Stata扩展连续和

用Stata扩展连续和,stata,Stata,我有一个小组。每个ID都是一个人 如果某人的A状态从1更改为0,则lose_A为1 我只有ID、年份、A、丢失A和升级 我想做长度和长度2 长度只是A的连续1s数 length2很相似,但只有一个区别:在一个_升级为1的年份之后,它又回到了1 ID year A lose_A A_upgrade length length2 1 3 1 1 0 1 1 1 4 0 0 0 0

我有一个小组。每个ID都是一个人

如果某人的A状态从1更改为0,则lose_A为1

我只有ID、年份、A、丢失A和升级

我想做长度和长度2

长度只是A的连续1s数

length2很相似,但只有一个区别:在一个_升级为1的年份之后,它又回到了1

ID year  A  lose_A  A_upgrade   length  length2
1  3     1    1       0           1        1
1  4     0    0       0           0        0
1  5     1    0       0           1        1
1  6     1    0       1           2        2
1  7     1    0       0           3        1
2  4     0    0       0           0        0
2  5     1    0       0           1        1
2  6     1    0       0           2        2
2  7     0    1       0           0        0
是的

bysort ID (year): gen sumA=sum(A)

作为长度和长度的垫脚石2。但我不知道下一步该怎么办。

谢谢你提出的明确问题和数据示例

这里的主要思想是认为您的主变量的拼写或运行是1。所以你将问题分为(1)为每种法术的开始创建标记,(2)在每种法术中向上计数

内部有更多的讨论

dm0029
tsspell
(SSC上的一个程序)是在StatList上查找许多相关帖子的不可预测的搜索词

clear 
input ID year  A  lose_A  A_upgrade   length  length2
1  3     1    1       0           1        1
1  4     0    0       0           0        0
1  5     1    0       0           1        1
1  6     1    0       1           2        2
1  7     1    0       0           3        1
2  4     0    0       0           0        0
2  5     1    0       0           1        1
2  6     1    0       0           2        2
2  7     0    1       0           0        0
end 

* start of each spell is 1, others 0 
bysort ID (year) : gen Length = A == 1 & (_n == 1 | A[_n-1] == 0) 

* count 2, 3, ... within spells 
by ID : replace Length = Length[_n-1] + 1 if A == 1 & Length == 0 

* second variable is a twist on the first 
bysort ID (year) : gen Length2 = A == 1 & (_n == 1 | A[_n-1] == 0 | A_upgrade[_n-1] == 1) 
by ID : replace Length2 = Length2[_n-1] + 1 if A == 1 & Length2 == 0 

list, sepby(ID) 

     +-------------------------------------------------------------------------+
     | ID   year   A   lose_A   A_upgr~e   length   length2   Length   Length2 |
     |-------------------------------------------------------------------------|
  1. |  1      3   1        1          0        1         1        1         1 |
  2. |  1      4   0        0          0        0         0        0         0 |
  3. |  1      5   1        0          0        1         1        1         1 |
  4. |  1      6   1        0          1        2         2        2         2 |
  5. |  1      7   1        0          0        3         1        3         1 |
     |-------------------------------------------------------------------------|
  6. |  2      4   0        0          0        0         0        0         0 |
  7. |  2      5   1        0          0        1         1        1         1 |
  8. |  2      6   1        0          0        2         2        2         2 |
  9. |  2      7   0        1          0        0         0        0         0 |
     +-------------------------------------------------------------------------+