楼主: ewfwedwd
6670 0

[其他] stata如何从ym数据格式中提取年月 [推广有奖]

  • 0关注
  • 1粉丝

svip1

已卖:423份资源

学科带头人

10%

还不是VIP/贵宾

-

威望
0
论坛币
1313 个
通用积分
456.6953
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
12600 点
帖子
903
精华
0
在线时间
220 小时
注册时间
2022-11-18
最后登录
2026-1-30

楼主
ewfwedwd 发表于 2025-8-5 20:02:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

下面给出 Stata 15-17 Stata 18+ 都能用的三段式代码,把 “2023-05” 这类 %tm 格式的年月变量 一键拆成 数值型 year month;同时把 “202305” 这种纯数字 也一并解决。直接复制即可跑通。





场景 1:变量已是 %tm 格式(如 2023m5

stata


* 假设变量名为 ymgen year  = year(dofm(ym))   // 2023gen month = month(dofm(ym))  // 5

dofm() 先把 %tm → %td(当月 1 号),再用 year()/month() 提取





场景 2:变量是字符串 “2023-05”

stata


* 1) 先转为 %tmgen ym_tm = monthly(string_ym, "YM")format ym_tm %tm

* 2) 再拆gen year  = year(dofm(ym_tm))gen month = month(dofm(ym_tm))





场景 3:变量是纯数字 202305

stata


* 假设数值变量为 ym_numgen year  = int(ym_num/100)        // 2023gen month = mod(ym_num,100)        // 5





一键检验

stata


list ym year month in 1/5


ym

year

month

2023m5

2023

5





懒人命令(Stata 18+

Stata 18 起可直接:

stata


split ym, parse(m) destring gen(tmp)rename tmp1 yearrename tmp2 month





一句话总结
变量是 %tm dofm();字符串先 monthly();纯数字直接 int/mod

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Stata tata 数据格式 destring Monthly
相关内容:stata数据提取

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-1 02:51