如何在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
相关产品推荐
相关产品推荐

