【问题标题】:Convert characters to dates in a panel data set将面板数据集中的字符转换为日期
【发布时间】:2017-02-02 16:21:52
【问题描述】:

我正在下载和使用以下面板数据,

# load / install package 
library(rsdmx)
library(dplyr)


# Total 
Assets.PIT <- readSDMX("http://widukind-api.cepremap.org/api/v1/sdmx/IMF/data/IFS/..Q.BFPA-BP6-USD")
Assets.PIT <- as.data.frame(Assets.PIT)
names(Assets.PIT)[10]<-"A.PI.T"
names(Assets.PIT)[6]<-"Code"
AP<-Assets.PIT[c("WIDUKIND_NAME","Code","TIME_PERIOD","A.PI.T")]
AP<-rename(AP, Country=WIDUKIND_NAME, Year=TIME_PERIOD)

我的目标是将数据帧AP 中的列向量Year 转换为dates 类的向量。换句话说,我希望 R 了解我的面板数据的时间序列部分。供您参考,我有季度数据,跨部门的日期范围不平衡(在我的情况下是国家/地区)。

head(AP$Year)
[1] "2008-Q2" "2008-Q3" "2008-Q4" "2009-Q1" "2009-Q2" "2009-Q3"

或者,

AP$Year<-as.factor(AP$Year)
head(AP$Year)
[1] 2008-Q2 2008-Q3 2008-Q4 2009-Q1 2009-Q2 2009-Q3
264 Levels: 1950-Q1 1950-Q2 1950-Q3 1950-Q4 1951-Q1 1951-Q2 1951-Q3 1951-Q4 1952-Q1 1952-Q2 1952-Q3 ... 2015-Q4

是否有任何简单的解决方案可以将这些字符日期转换为时间序列日期?

【问题讨论】:

  • 试试as.Date(paste(substr(AP$Year,1,4),3*(as.integer(substr(AP$Year,7,7))),"01",sep="-"))

标签: r data-cleaning panel-data


【解决方案1】:

library(zoo) as.Date(as.yearqtr(AP$year, format ='%YQ-%q'))

应该这样做。

【讨论】:

  • 我需要安装软件包吗?因为 R 找不到 as.yearqtr 函数。
  • 哦,是的,对不起,那是图书馆'动物园'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多