2015-11-09 140 views
0

我有一个面板的数据集,并且其中的第一列是在在Stata格式年季度的时间,如下所示:如何将数字日期变量转换为季度日期?

quarter id 
1993q1 1 
1993q2 1 
1993q3 1 
1993q4 1 
1994q1 1 
1994q2 1 
1994q3 1 
1994q4 1 
1995q1 1 
1995q2 1 
1995q3 1 
1995q4 1 

我已导入该数据集从Stata的成R,但我不“知道如何将其转换为使用as.Date函数的日期格式(我刚开始学习R)的日期看起来像[R如下:

quarter 
137 
138 
139 
140 
141 
142 
143 
144 
145 
146 
147 

所以我的问题:是有一种内置的方式来导入季度数据我在Stata中的格式,如果不是,我怎样才能把这个数字日期转换成R的季度?有什么建议么?

回答

3

您可以使用zoo包中的as.yearqtr。 对于字符串格式:

library(zoo) 
as.yearqtr("1993q1",format="%Yq%q") 
#[1] "1993 Q1" 

对于数字格式:

#origin seems to be 1958 Q4 
start_val=1958.75 
#137 is the first value in your list 
as.yearqtr(start_val+137/4) 
#[1] "1993 Q1" 
0

尝试:

library(zoo) 
quarter <- c("1993q1", "1993q2") 
as.yearqtr(quarter) 
## [1] "1993 Q1" "1993 Q2" 

还要注意的百分比码?strftime?as.yearqtr

+0

这是怎么回事不同于其他答案? – Jaap

+0

不是。我不知道其他答案已经发布。我在这里是全新的,所以试图去掌握它。 –

+0

谢谢大家! @ cryo111只是为了证实这个问题:'start_val = 1958.75 q <-as.yearqtr(start_val + quarter/4)' – Demet