首页 文章

Stata:替换虚拟以进行多次观察

提问于
浏览
0

Headers 可能会产生误导 .

我有一个带有虚拟( dummy1 )变量的纵向数据集,指示某个年份是否满足条件,给定 category . 我希望在接下来的二十年里考虑这个事件 . 因此,我想创建一个新的虚拟对象( dummy2 ),其中 dummy1 为1的观察结果后的19个观测值的值为1,以及相同的观察结果(下面的示例) .

example

我试图创建一个带滞后运算符的循环,但到目前为止无法使其工作 .

1 回答

  • 2

    即使失败的代码也可能接近一个好的解决方案 . 不提供失败的代码意味着我们无法解释您的错误 . 此外,关注如何使用软件做某事的问题在SO上被广泛认为是边缘的或偏离主题的 .

    一种方法是

    bysort category (year) : gen previous = year if dummy1 
    by category : replace previous = previous[_n-1] if missing(previous)
    gen byte dummy2 = (year - previous) < 20
    

    这里的诀窍是创建一个变量,保持最后 year 虚拟(指标)为1,其中的技巧在How can I replace missing values with previous or following nonmissing values or within sequences?中拼写出来

    请注意,这独立于

    • 面板标识符是否为数字(可以在此处为字符串,在给出的证据上)

    • 您是否拥有 tssetxtset 数据

    • 第一次事件发生之前会发生什么;这些年来, previous 缺生并且仍然缺失(但是,一般来说,在时间序列的末尾注意代码问题) .

相关问题