如何在Stata中生成介于选举年虚拟变量之间的中期年份虚拟变量
Stata生成选举中期年虚拟变量操作方案
你已经持有时间序列/面板数据、选举年虚拟变量election_year(取值1代表选举年,0代表非选举年),需要生成标识两次选举之间中期年份的虚拟变量,可按以下步骤操作:
操作步骤
1. 纯时间序列数据
首先确认已通过tsset声明时间格式,执行以下代码:
* 存储选举年的年份数值 gen election_yr = year if election_year == 1 * 向下填充选举年数值到后续非选举年 carryforward election_yr, replace * 计算当前年份距离上一次选举的间隔 gen yrs_after_election = year - election_yr * 生成中期年虚拟变量,4年选举周期下中期为选举后第2年,可按需调整数值 gen midterm_year = (yrs_after_election == 2) * 清理临时变量 drop election_yr yrs_after_election
如果运行报错提示找不到carryforward命令,先执行ssc install carryforward安装外部命令即可。
2. 面板数据
假设个体标识变量为id,执行以下代码:
* 按个体分组、按年份排序后存储选举年数值 bysort id (year): gen election_yr = year if election_year == 1 * 按个体分组向下填充选举年数值 bysort id (year): carryforward election_yr, replace * 计算间隔 bysort id (year): gen yrs_after_election = year - election_yr * 生成中期年虚拟变量 gen midterm_year = (yrs_after_election == 2) * 清理临时变量 drop election_yr yrs_after_election
注意事项
- 若你使用的选举周期不是4年,只需修改
yrs_after_election == 2中的数值即可,比如5年选举周期的中期为选举后第3年,调整为yrs_after_election == 3 - 最终生成的
midterm_year就是你需要的中期年虚拟变量,1代表中期年,0代表非中期年
内容的提问来源于stack exchange,提问作者Karen Romero
相关产品推荐
相关产品推荐

