R:将xts或zoo对象转换为数据框

use*_*446 5 r time-series dataframe xts

什么是将时间序列数据强制转换为数据帧的简单方法,其格式是结果数据是原始数据的摘要?

这可能是一些示例数据,存储在xts或zoo对象中:

t,                  V1
"2010-12-03 12:00", 10.0
"2010-11-04 12:00", 10.0
"2010-10-05 12:00", 10.0
"2010-09-06 12:00", 10.0
...and so on, monthly data for many years.
Run Code Online (Sandbox Code Playgroud)

我想将其转换为数据框,如:

year, month, V1
2010, 12,    a descriptive statistic calculated of that month's data
2010, 11,    ...
2010, 10,    ...
2010, 9,     ...
Run Code Online (Sandbox Code Playgroud)

我问这个的原因是因为我想在同一个图中绘制每月计算的数据摘要.对于后一种格式的数据,我可以很容易地做到这一点,但是没有找到时间序列格式的绘图方法.

例如,我可以在每日间隔内测量几年的温度数据,我想绘制同一地块中每年月平均温度的曲线.我没有弄清楚如何使用xts格式的数据,或者这甚至适合数据的xts/zoo格式化的目的,这似乎始终携带年份信息.

Jos*_*ich 7

请提供一份可供使用的数据样本,我将尽力提供一般性答案.基本上,您可以使用apply.monthly计算xts对象的摘要统计信息.然后,您可以将索引yearmon转换为xts对象并将其转换为data.frame.

x <- xts(rnorm(50), Sys.Date()+1:50)
mthlySumm <- apply.monthly(x, mean)
index(mthlySumm) <- as.yearmon(index(mthlySumm))
Data <- as.data.frame(mthlySumm)
Run Code Online (Sandbox Code Playgroud)

  • @ user442446如果它回答了你的问题,你应该接受它为"最佳答案".您还应该针对您提出的其他5个问题执行此操作,因为您没有为任何问题标记任何"最佳答案". (3认同)