不平衡面板数据的计数变量,重复以二进制变量为条件的最后一个值
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)
我很难为 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)