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

如何在Stata 13中创建仅包含年月的日期变量?

解决Stata 13中从Excel列提取年月创建日期变量的问题

我来帮你搞定这个问题!Stata的date()函数默认需要完整的日/月/年信息,直接用"MY"格式会因为缺少日的部分无法正确识别,所以咱们换更合适的方法来处理:

情况1:month_year是字符串格式(比如"2023-10"、"Oct-2023"或"10/2023")

如果你的month_year是字符串,我们可以先给它补上一个固定的日(比如每月1号),再转换成日期:

  • 若格式为YYYY-MM(如"2023-10"):
    // 拼接"-01"得到完整日期字符串,再转换
    gen new_date = date(month_year + "-01", "YMD")
    // 设置显示格式为年月样式
    format new_date %tm
    
  • 若格式为MM-YYYY或MM/YYYY(如"10-2023"、"10/2023"):
    // 拼接"01-"得到完整日期字符串,再转换
    gen new_date = date("01-" + month_year, "DMY")
    format new_date %tm
    
  • 若格式为英文月份+年份(如"Oct-2023"):
    gen new_date = date(month_year + "-01", "MYD")
    format new_date %tm
    

情况2:month_year是数值格式(比如202310代表2023年10月)

这种情况用Stata专门的ym()函数最方便,它直接接受年份和月份生成日期变量:

// 提取年份(除以100取整)和月份(取100的余数)
gen new_date = ym(floor(month_year/100), mod(month_year, 100))
// 设置显示格式为年月
format new_date %tm

验证结果

执行完命令后,可以用以下命令检查转换是否正确:

list month_year new_date in 1/10

或者查看变量属性确认:

describe new_date

这样处理后,new_date就是一个仅显示年月的日期变量,完全符合你的需求啦!

内容的提问来源于stack exchange,提问作者Farai Mugaviri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:28:11