我正在尝试创建一个函数,该函数从总体的多个时间段收集最大值,并将它们存储在最大值的样本中(即块最大值)
到目前为止,我有:
function(pop, n)
{
x <- length(pop)
sample <- numeric(x/n)
j=0
i=0
while(i<x)
{
sample[j] <- max(pop[i:i+n])
j=j+1
i=i+n
}
return(sample)
}
但是,我无法弄清楚计算最大值的正确方法。 有人可以帮忙吗?
答案 0 :(得分:0)
您可以使用dplyr
:
library(dplyr)
block_max <- function(pop, n) {
data.frame(pop = pop, group = ceiling(seq_along(pop) / n)) %>%
group_by(group) %>%
summarise(max_group = max(pop))
}
block_max(1:100, 11)