【发布时间】:2021-05-07 23:58:58
【问题描述】:
假设我有每小时(总共 6 小时)波高数据,如下所示。我正在使用mean 函数将它们聚合为 2 小时和 3 小时的高度
h_1<-c(2, 4, 6, 7, 9, 11)
这是我使用的函数:
agg_direct<-function(x){
y<-as.data.frame(x)
names(y)<-c("wh")
agg<-lapply(c(1, 2, 3), function(x)
tapply(y$wh, as.integer(gl(nrow(y), x, nrow(y)) ), FUN = mean))
}
out<-agg_direct(h_1)
这个的输出:
$h_1
1 2 3 4 5 6
2 4 6 7 9 11
$h_2
1 2 3
3.0 6.5 10.0
$h_3
1 2
4 9
但这正是我想要的:
For 2-h, mean of (2,4), (4,6), (6,7), (7,9), (9,11)
For 3-h, mean of (2,4,6), (4,6,7), (6,7,9), (7,9,11)
所以输出会是这样的:
For 2-h: 3, 5, 6.5, 8, 10
For 3-h: 4, 5.66, 7.33, 9
而且这个过程会在 4 小时、5 小时之后执行……
【问题讨论】:
-
以下三个值每一步都会求和取平均值
标签: r mean aggregation