Stata中从日期变量提取年季度值出现异常问题求助
错误原因
你直接对日度存储格式的date变量应用%tq格式是问题根源:Stata不同时间显示格式对应固定的存储单位规则:
- 你当前的
date变量存储单位为1960年1月1日以来的天数,对应%td类显示格式 %tq格式要求变量存储单位为1960年第1季度以来的季度数,你直接把天数作为季度数解析,自然会出现7000+年的异常结果。
解决方案
两种常用实现方式按需选择:
- 方法1:生成Stata原生季度日期变量,直接设置显示格式为
YYYY-QQ
* 将日度日期转换为季度单位值 gen qdate = qofd(date) * 设置显示格式为 年-季度 样式 format qdate %tqCY-QQ
生成的qdate是Stata可识别的时间变量,可直接用于后续时间序列回归、分组统计等操作,显示效果为2020-Q3这类格式。
- 方法2:直接生成字符串格式的年季度标识
如果你只需要文本标识用于输出、分组,不需要后续时间运算,可直接提取年、季度拼接:
gen str7 qtr_label = string(year(date),"%04.0f") + "-Q" + string(quarter(date),"%01.0f")
你给出的示例date值22161对应2020年9月3日,两种方法都会生成2020-Q3的正确结果,可运行list date date_clean qdate qtr_label in 1/5核对输出是否符合预期。
内容的提问来源于stack exchange,提问作者bricevk
相关产品推荐
相关产品推荐

