R语言 xts对象:特定月份的平均值

ui7jx7zq  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(90)

我有下面的xts对象。

x <- sample (19:22, 121, replace=T)
time <- seq.Date(as.Date("2000-01-01"), length=121, by="months")

2001-02-01   21
2001-03-01   19
2001-04-01   22
2001-05-01   19
2001-06-01   19
2001-07-01   20
...
...
...
2009-11-01   21
2009-12-01   20

我想写一个函数或代码,返回每个月的平均值(所有1月的平均值,所有2月的平均值等等)
有没有一种方法可以用像apply.monthly这样的xts函数来实现呢?
最后,我的目标是写一个函数,将每个月的数据点与其月平均值进行中心化

gcuhipw9

gcuhipw91#

你是故意要这样的东西吗

library(dplyr)

#sample data    
set.seed(123)
df <- data.frame(date = seq.Date(as.Date("2000-01-01"), length=121, by="months"),
                 value = sample(19:22, 121, replace=T))

final_df <- df %>%
  group_by(months(date)) %>%
  summarize(value_mean = mean(value))
final_df

输出为:

`months(date)` value_mean
 1          April   20.60000
 2         August   20.80000
 3       December   20.50000
 4       February   20.10000
 5        January   20.72727
 6           July   20.60000
 7           June   19.80000
 8          March   20.30000
 9            May   20.60000
10       November   20.80000
11        October   21.00000
12      September   20.40000

相关问题