r - 将 YearQtr 系列转换为月末日期

标签 r zoo yearmonth

我正在尝试将季度系列数据转换为 R 中的月度系列。我可以为该季度的三个月中的每个月重复相同的季度数据。不确定为什么 as.yearmon 给出“Jul”而不考虑 Q1、Q2、Q3 等。此外,将 1986Q1 拆分为 1/31/1986、2/28/1986、3/31/1986 的任何帮助都会有所帮助。谢谢!

#输入

1986Q1 25

1986Q2 30

#输出

1986 年 1 月 31 日 25

2/28/1986 25

1986 年 3 月 31 日 25

1986 年 4 月 30 日 30

……

#代码

start=as.yearmon("1986Q1","%YQ")
end=as.yearmon("1986Q2","%YQ")
month=seq(start, end, 1/12)

print(as.yearmon("1986Q1","%YQ"))
"Jul 1986"

最佳答案

使用动物园

library(zoo)
qrtrs = c("1986Q1","1986Q2","1986Q3","1986Q4")
mnths = sapply(1:3, \(i) as.Date(as.yearmon(as.yearqtr(qrtrs)) + i/12) - 1)
sort(as.Date(mnths))

输出

[1] "1986-01-31" "1986-02-28" "1986-03-31" "1986-04-30" "1986-05-31" "1986-06-30" "1986-07-31"
 [8] "1986-08-31" "1986-09-30" "1986-10-31" "1986-11-30" "1986-12-31"

这也适用于闰年

关于r - 将 YearQtr 系列转换为月末日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72935566/

相关文章:

R 如何将应用函数用于时间序列对象并将日期附加到特定列?

用于将月份识别为特定年份的一部分的 Excel 公式

r - 与同一组中的元素组合不会超过一次

r - 如何使内联 r 脚本在 RMarkdown 报告中可见?

r - 在 rmarkdown pdf 输出中包装比例表的列名称的有效方法

javascript - 如何将 R Shiny 中的事件发送到 Google Analytics?

r - 在R中填充缺失值时间序列数据

Rollapply 和 xts。我可以输出窗口中最大值的时间吗?