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

时间:2014-03-07 14:57:50

标签: time-series stata

标题可能会产生误导。

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

example

我试图创建一个带滞后运算符的循环,但到目前为止还没能让它工作。

1 个答案:

答案 0 :(得分: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 

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

中拼写出来

请注意,这与

无关
  1. 面板标识符是否为数字(在提供的证据上可以是字符串)

  2. 您是否有tssetxtset数据

  3. 第一次活动前会发生什么;这些年来,previous缺生并且仍然缺失(但是,通常,在时间序列的末尾注意代码问题)。