不平衡面板数据的计数变量,重复以二进制变量为条件的最后一个值

Count variable for unbalanced panel data, repeating the last value conditioned on a binary variable

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

开始计数(从_n开始)每次二进制变量等于1,如果从1变为0,则count重复最后一个值,直到二进制再次变为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 数字)。

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

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

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