Stata:ID和子集的意思

时间:2014-07-07 13:16:02

标签: stata

在Stata中,我有一个面板数据集,其中包含面板标识符和时间变量(以及感兴趣的指标)。我想通过面板ID生成一个变量,该变量等于特定年份范围内其中一个度量的平均值。执行以下操作可以实现我想要的功能,但只会将变量填充到我限制它的年份。我希望这些年来能够填充这个结果。我有陪审团操纵了一个涉及对数据进行排序的解决方案,但我想检查是否有更优雅的方法。

sort id year
egen x_natural = mean(x) if year >= 2005 & year <= 2007, by(id)
sort id x_natural year
replace x_natural = x_natural[_n-1] if id == id[_n-1]

1 个答案:

答案 0 :(得分:4)

一种方法是

egen x_natural = mean(x / (year >= 2005 & year <= 2007)), by(id)

而另一个是

egen x_natural = mean(cond(year >= 2005 & year <= 2007, x, .)), by(id)

顺便说一下,

year >= 2005 & year <= 2007

可以使用

计算
inrange(year, 2005, 2007) 

有关该地区的相当系统的介绍性调查,请参阅http://www.stata-journal.com/article.html?article=dm0055,现在所有人都可以访问.pdf。 直接为此,请参阅http://www.stata-journal.com/sjpdf.html?articlenum=dm0055