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

如何从Stata elapsed date变量生成年度日历变量

从Stata Elapsed Date提取年份生成新变量

嘿,我来帮你搞定这个需求!你需要的是生成一个真正的数值型年份变量,而不是仅仅调整日期的显示格式,对吧?这里有两种简单又靠谱的方法:

方法1:使用内置的year()函数(推荐)

这是最直接的方式,Stata的year()函数可以直接从日期变量中提取对应的年份,生成的变量是纯数值类型,完全符合你的要求。

完整代码示例

clear 
input long patid float date
1015 18766
1018 13135
1020 13325
1025 14384
1029 14514
1050 13501
1070 14523
1071 14878
1090 14701
1092 14159
end
format %td date

* 生成年度变量year_var
gen year_var = year(date)

* 查看结果,验证年份是否正确
list patid date year_var

运行这段代码后,你会看到新变量year_var里就是每个日期对应的年份(比如date=18766对应的是2021年,因为Stata的%td日期以1960年1月1日为基准日,18766天后就是2021年4月20日)。

方法2:使用yofd()函数(和year()效果一致)

yofd()是“year of date”的缩写,功能和year()完全相同,只是函数名不同,你可以根据习惯选择:

* 用yofd()生成年度变量
gen year_var2 = yofd(date)

* 对比两个变量的结果,确认一致
list patid date year_var year_var2

小提示

要确保你的date变量是Stata能识别的日期型变量:如果你的原始变量还没被定义为日期,需要先使用gen date = date(原始变量, "日期格式")转换(比如gen date = date(raw_date, "YMD")),但你的示例数据已经是elapsed date数值,并且已经用format %td date设置了显示格式,所以直接用上面的函数就可以啦。

内容的提问来源于stack exchange,提问作者Abdul-Kareem Abdul-Rahman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:08:33