Stata:通过ID和子集进行平均

Stata:通过ID和子集进行平均,stata,Stata,在Stata中,我有一个带有面板标识符和时间变量(以及感兴趣的度量)的面板数据集。我想通过面板ID生成一个变量,该变量等于特定年份范围内这些指标之一的平均值。执行以下操作符合我的要求,但仅填充我限制的年份的变量。我希望这些年都能得到这个结果。我已经操纵了一个涉及数据排序的解决方案,但我想检查是否有更优雅的方法 sort id year egen x_natural = mean(x) if year >= 2005 & year <= 2007, by(id) sort id

在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]
排序id年份
egen x_natural=平均值(x),如果年份>=2005年,则一种方法是

egen x_natural = mean(x / (year >= 2005 & year <= 2007)), by(id)
有关这一领域相当系统的介绍性调查,请参阅现在以.pdf格式提供给所有人的。 要直接了解这一点,请参见

egen x_natural = mean(x / (year >= 2005 & year <= 2007)), by(id)
有关这一领域相当系统的介绍性调查,请参阅现在以.pdf格式提供给所有人的。
要直接了解这一点,请参见

有趣!一个问题:你的第一个建议是什么?看起来你在用一个二进制变量除以x,在我的范围内等于1,在我的范围外等于0。为什么这不会返回一个超出范围年份的错误?我的论文中已经解释过了。正如我强调的那样,你很容易理解,所以我建议你读一读。很有趣!一个问题:你的第一个建议是什么?看起来你在用一个二进制变量除以x,在我的范围内等于1,在我的范围外等于0。为什么这不会返回一个超出范围年份的错误?我的论文中已经解释过了。正如我强调的那样,这是你可以理解的,所以我建议你阅读它。
year >= 2005 & year <= 2007
inrange(year, 2005, 2007)