如何计算R中的移动平均线?

问题描述 投票:0回答:1

我想为重叠的世代计算移动平均值。例如。 1915年的值应包括1900-1930年的平均值,1916年的值应为1901-1931年的平均值,依此类推。我编写了以下函数和循环:

calc_mean = function(data_frame, yr, time_generation){
  df_MM = data_frame %>% 
  filter(yr >= year & yr < year + time_generation) %>% 
  summarize(school_mean = mean(school, na.rm = TRUE)) %>% 
  mutate(year = year + gen_interval/2)

return(df_MM)
}
time_generation = 30;

# Preallocation
df_mean = data.frame()


for(year in seq(from = 1900, to = 2000, by = 1)){

  df_MM = calc_mean(df_school, yr = year, time_generation)

  df_mean = rbind(df_mean, df_MM)
}

remove(df_MM)

但是,如果我对一个小样本进行交叉检查,则会得到错误的值。看到我的错误了吗?

r loops moving-average
1个回答
0
投票
假设您的数据没有间隙,
© www.soinside.com 2019 - 2024. All rights reserved.