gpt4 book ai didi

r - xts 对象中月数据(一月到十二月)的平均值

转载 作者:行者123 更新时间:2023-12-01 23:57:30 26 4
gpt4 key购买 nike

我有这么大的 xts,每月使用 apply.monthly 函数进行汇总。

2011-07-31 269.8
2011-08-31 251.0
2011-09-30 201.8
2011-10-31 95.8
2011-11-30 NA
2011-12-31 49.3
2012-01-31 77.1
...

我想要的是计算所有期间的 1 月至 12 月的平均值。类似这样的东西,但采用 xts 形式:

01 541.8
02 23.0
03 34.8
04 12.8
05 21.8
06 44.8
07 22.8
08 55.0
09 287.8
10 15.8
11 113
12 419.3

我想避免使用 dplyr 函数,例如 group_by。我认为必须有一个使用 splitlapply/do.call

的解决方案

我尝试在几年内拆分 xts

xtsobject <- split(xtsobject, f = "years")

然后我不知道如何正确使用 lapply 函数来计算所有期间的 12 个平均值(1 月至 12 月)。这个问题 Group by period.apply() in xts类似,但在我的 xts 中我没有/想要一个新列,我认为可以使用 xts 索引来完成。

最佳答案

假设输入数据x,在末尾的注释中重复显示,使用aggregate.zoo,如下所示:

ag <- aggregate(x, cycle(as.yearmon(time(x))), mean, na.rm = TRUE)
ag

给出以下动物园系列:

1   77.1
7 269.8
8 251.0
9 201.8
10 95.8
11 NaN
12 49.3

我们可以这样画:

plot(ag, type = "h")

screenshot

注意事项

Lines <- "2011-07-31 269.8
2011-08-31 251.0
2011-09-30 201.8
2011-10-31 95.8
2011-11-30 NA
2011-12-31 49.3
2012-01-31 77.1"

library(xts)
z <- read.zoo(text = Lines)
x <- as.xts(z)

关于r - xts 对象中月数据(一月到十二月)的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62481050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com