2015-11-09 139 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