如何将季度/月度数据转换为POSIXct或Date

时间:2015-08-26 09:50:10

标签: r date posixct

我正在尝试从ECB的统计数据仓库导入数据,并编写了以下功能:

read.sdw<-function(key, startdate, enddate){
  df<-read.csv(paste("http://sdw.ecb.europa.eu/quickviewexport.do?start=", startdate, "&end=", enddate, "&SERIES_KEY=", key=key, "&type=csv", sep=""), skip=4)
  df
}

,例如:

start.date<-"01-01-2010"
end.date<-"31-12-2012"
key<-"RDF.Q.AT.EUR.4F.CR.DCGDPG.RO"

现在的问题是我有以下形式的月度或季度数据:

     Period.Unit. X.Percentage.change..
1      2000Dec                   9.6
2      2000Nov                   9.3
3      2000Oct                   9.8
4      2000Sep                  10.1
5      2000Aug                   9.6
6      2000Jul                   9.1

  Period.Unit. X.Percent..
1       2012Q4       -4.23
2       2012Q3       -3.21
3       2012Q2       -4.39
4       2012Q1       -4.30
5       2011Q4       -4.40
6       2011Q3       -3.58

> dput(head(df))
structure(list(Period.Unit. = structure(c(12L, 11L, 10L, 9L, 
8L, 7L), .Label = c("2010Q1", "2010Q2", "2010Q3", "2010Q4", "2011Q1", 
"2011Q2", "2011Q3", "2011Q4", "2012Q1", "2012Q2", "2012Q3", "2012Q4"
), class = "factor"), X.Percent.. = c(-4.23, -3.21, -4.39, -4.3, 
-4.4, -3.58)), .Names = c("Period.Unit.", "X.Percent.."), row.names = c(NA, 
6L), class = "data.frame")

如何将时间列转换为POSIXctDate才能使用它?

我已经尝试了

df[,1]<-paste(df[,1], 1, sep="")
df[,1]<-as.Date(df[,1], "%Y%b%d")

表示月度数据,但这会在时间列中显示NA

0 个答案:

没有答案