楼主: gqsues
6926 10

[面板数据求助] 如何删除面板数据中非连续年份的样本? [推广有奖]

11
赵安豆 发表于 2024-9-3 12:03:37
在Stata中,你可以使用`egen`命令和`by`语句来实现这个需求。下面是一种可能的方法:

首先,将数据设置为面板数据格式:
```stata
xtset IDN year
```
然后,创建一个变量,用于记录每个个体(IDN)的观测年数:
```stata
bysort IDN: egen nobs = count(year)
```
接下来,使用`keep`命令保留那些在2011、2013和2015都有数据的样本。由于这些样本应有3个观测值,我们可以这样操作:
```stata
keep if nobs == 3
```
最后,确保所有符合条件的年份都存在。虽然上面的操作已经保留了只有三年数据的个体,但为了更准确地确认2011、2013和2015这三个特定年份都在每个保留样本中,我们可以进一步检查:
```stata
preserve

collapse (max) year, by(IDN)

gen y2011 = cond(year == 2011, 1, 0)
gen y2013 = cond(year == 2013, 1, 0)
gen y2015 = cond(year == 2015, 1, 0)

keep if y2011 + y2013 + y2015 == 3

restore
```
但是,考虑到`xtset`命令和之前的`nobs`计算已经确保了每个个体有且仅有三年数据,上述最后一步可能不是必需的。如果只需要删除那些不足三年观测值的数据,前面几步就足够了。

请注意,在使用这些命令前,你应该先将你的实际数据加载到Stata中,并替换示例中的`IDN`和`year`变量名以匹配你数据集的实际结构。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2026-1-16 23:39