我想为重叠的世代计算移动平均值。例如。 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)
但是,如果我对一个小样本进行交叉检查,则会得到错误的值。看到我的错误了吗?