我想将df转换为xts与年末日期索引(即1989-12-31)。我搜索网络但没有答案。谢谢,感谢您的帮助。
df <- read.table(textConnection("
date a b c d
198912 29.46 13.47 32.52 22.06
199001 36.35 17.30 38.14 24.98
199002 33.72 15.57 38.14 23.61
199003 30.76 14.01 34.74 21.73
"),header=T)
答案 0 :(得分:4)
使用yearmon
课程,然后使用as.Date.yearmon
引用help('yearmon')
:
as.Date.yearmon和as.yearmon.yearqtr每个都有一个可选的第二个参数“frac”,它是一个介于0和1之间的数字,表示结果所代表的时间段的分数。默认值为0,表示期间的开始。
as.Date(as.yearmon(as.character(df$date), format = '%Y%m'), frac=1)
## [1] "1989-12-31" "1990-01-31" "1990-02-28" "1990-03-31"
答案 1 :(得分:3)
对于笑声来说,这是一个基本的R方法,这无疑是非常丑陋的:
Reduce(c,
lapply(
as.Date(paste0("1-",as.character(df$date)),format="%d-%Y%m"),
function(x) seq.Date(x,length=2,by="1 month")[2] - 1
)
)
[1] "1989-12-31" "1990-01-31" "1990-02-28" "1990-03-31"