从Stata中的日期变量提取季度



我正试图从如下示例中看起来像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)

会做你想做的事。

最新更新