我有从2000年1月1日到30日2015年的每日频率的数据,此系列被格式化为日期(格式日期%d)。我能够使用日期(日期),月份(日期)和年份(日期)提取日,月和年。
我还需要生成一个表示其季度的变量,我使用gen季度= dofq(日期),然后格式化季度%tq。我没有返回格式2000q1,而是获得了一系列科学记数法(例如1.2e + 06)。有谁知道为什么以及如何解决这个问题?
提前致谢!
答案 0 :(得分:0)
以下是一些示例代码,可能会指向您寻找的方向。
. clear
. set obs 1
number of observations (_N) was 0, now 1
. generate test = td(21nov2016)
. format %d test
. generate qtr = quarter(test)
. generate yq = qofd(test)
. format %tq yq
. list
+--------------------------+
| test qtr yq |
|--------------------------|
1. | 21nov2016 4 2016q4 |
+--------------------------+
答案 1 :(得分:0)
要建立到目前为止所做的工作:您应该意识到从day
中提取变量month
,year
和date
的方式与您可以提取 quarter (例如,在您的案例中为gen quarter = quarter(date)
)。然后,使用变量quarter
和year
作为输入,您可以生成新变量gen year_quarter = yq(year,quarter)
并使用%tq
对其进行格式化。从本质上讲,这就是函数qofd()
(取自William'示例)在后台执行的操作,而不生成其他变量quarter
和year
。