计算不平衡面板数据的变量,重复以二进制变量

时间:2017-03-08 19:30:20

标签: count binary conditional stata panel-data

我很难为Stata中的以下条件生成不平衡面板数据的计数变量count = _n

每次二进制变量等于1时开始计数(从_n开始),如果它从1变为0,则count重复最后一个值,直到二进制变为1再次变为1(在此案件从它停止的地方继续计算)。

我认为显示我的问题更容易给出我的数据集示例:

year    country  binary  count[variable that I want to create]
1959        1       0       0
1960        1       0       0
1961        1       1       1
1962        1       1       2
1963        1       1       3
1964        1       0       3
1965        1       0       3
1966        1       .       .
1967        1       1       4
1959        2       0       0
1960        2       0       0
1961        2       0       0
1962        2       1       1
1963        2       1       2
1964        2       .       .
1965        2       .       .
1966        2       0       2
1967        2       0       2
1968        2       1       3
1969        2       1       4
1970        2       0       4
1959        3       1       1
1960        3       1       2
1961        3       1       3
1962        3       0       3
1963        3       .       .
1964        3       1       4
1965        3       .       .
1966        3       0       4

在上面的示例中,对于country = 1,我的新变量count在1961年开始计算(来自_n)(因为今年,二进制变量等于1 ),然后它再次计数(从_n)到binary = 0(保持相同的最后count个数字)。

缺少的值在新变量中保留为缺失值。

1 个答案:

答案 0 :(得分:1)

根据您显示的数据,以下内容会创建与您ncount的值相匹配的count

bysort country (year): generate ncount = sum(binary)
replace ncount = . if missing(binary)
list, sepby(country)