我正试图从如下示例中看起来像dat
的日期变量中提取季度:
clear all
input str20 str
"12Jan1998"
"29Dec2000"
end
gen dat = date(str, "DMY")
format dat %tdDD-NN-CCYY
我正在尝试使用quarter()
函数,如:
gen quart = quarter(dofq(dat))
我得到的显然是错误的。你能提出解决这个问题的方法吗?根据这个例子,我最终想要得到的是1和4。
在构建每日日期时,您只需要quarter()
。我在这里使用daily()
而不是date()
。它是相同的函数,但名称更具体。
. clear all
. input str9 str
str
1. "12Jan1998"
2. "29Dec2000"
3. end
. gen date = daily(str, "DMY")
. format date %tdDD-NN-CCYY
. gen quarter = quarter(date)
. list
+----------------------------------+
| str date quarter |
|----------------------------------|
1. | 12Jan1998 12-01-1998 1 |
2. | 29Dec2000 29-12-2000 4 |
+----------------------------------+
help quarter
文档告诉我们,它接受"%td日期"作为参数,因此您给了它一个从该参数转换为"%tq数据"的参数,这让它很困惑。所以
gen quart = quarter(dat)
会做你想做的事。