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

如何在Stata中从字符串月度数据创建年月时间变量(面板数据)

Stata字符串转月度时间变量(适配面板数据)

如果你的月度贸易数据里的年月是字符串格式,要生成2002m1至2013m12样式的时间变量,不用纠结mdy(),用Stata的monthly()函数直接搞定,分两种常见情况处理:

情况1:字符串是「YYYY年MM月」格式(比如"2002年1月")

先提取年份和月份的数字,再生成时间变量:

// 假设原字符串变量名为year_month
gen year = real(substr(year_month, 1, 4))  // 提取前4位作为年份
gen month = real(subinstr(substr(year_month, 6, .), "月", "", .))  // 提取月份数字

// 生成月度时间变量
gen ym = monthly(string(year) + "m" + string(month), "YM")
format ym %tm  // 设置显示格式为YYYYmM

情况2:字符串是「YYYY-MM」或「YYYY/MM」格式(比如"2002-01")

直接一步转换:

// 假设原字符串变量名为year_month
gen ym = monthly(year_month, "YM")
format ym %tm

补充:如果已经用mdy()生成了连续时间

可以通过mofd()转成月度时间:

gen ym = mofd(your_mdy_date_var)
format ym %tm

生成的ym变量本质是Stata内部的月度时间计数,但格式化后会显示为2002m1这种直观样式,完全适配面板数据的时间标识需求。

内容的提问来源于stack exchange,提问作者Anupam Ghosh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 12:55:22