将字符串变量数据转换为季度时间序列数据

时间:2016-03-23 04:08:40

标签: type-conversion time-series stata

我在Stata中有这种类型的数据集:

date       y   x

Q1 1990   2    4
Q2 1990   2    5
Q3 1990   6    66
Q4 1990   88   99
Q1 1991   12   24
Q2 1991   42   53
Q3 1991   63   66
Q4 1991   8    39

依此类推,直到2014年第四季度。

我想在Stata中进行时间序列分析,并想知道如何首先将我的日期变量(字符串变量)转换为Stata中的时间序列变量。

2 个答案:

答案 0 :(得分:1)

您尝试了哪些代码?没有代码的问题在这里被广泛认为是偏离主题的。参见例如https://stackoverflow.com/help/mcve

help dates记录了将字符串转换为数字日期的函数。这里唯一的小麻烦就是你需要忽略Q。在您的情况下,使用quarterly()会更容易,但yq()也可用。

. input str7 date 

          date
  1.  "Q1 1990"  
  2.  "Q2 1990"  
  3.  "Q3 1990"  
  4.  "Q4 1990"  
  5.  "Q1 1991"  
  6.  "Q2 1991"  
  7.  "Q3 1991"  
  8.  "Q4 1991"
  9. end 

. gen qdate1 = quarterly(substr(date, 2, .), "QY") 

. gen qdate2 = yq(real(word(date, 2)), real(substr(date, 2, 1)))

. format qdate? %tq 

. assert qdate1 == qdate2

. list 

     +---------------------------+
     |    date   qdate1   qdate2 |
     |---------------------------|
  1. | Q1 1990   1990q1   1990q1 |
  2. | Q2 1990   1990q2   1990q2 |
  3. | Q3 1990   1990q3   1990q3 |
  4. | Q4 1990   1990q4   1990q4 |
  5. | Q1 1991   1991q1   1991q1 |
     |---------------------------|
  6. | Q2 1991   1991q2   1991q2 |
  7. | Q3 1991   1991q3   1991q3 |
  8. | Q4 1991   1991q4   1991q4 |
     +---------------------------+

答案 1 :(得分:0)

另一种方法:

*Converting the data to time series
d

list

gen qdate = yq(real(substr(date, -4, 4)), real(substr(date, 2, 1)))

format qdate %tq

l

*Declare data as time series

tsset qdate