You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:24:05