我在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中的时间序列变量。
答案 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