【发布时间】:2020-11-17 17:20:50
【问题描述】:
我有一个关于 for 循环和滚动平均值的问题,我想要当天加上前 6 天的估计值。目前,我有一个计算每日新人数量的 for 循环。但我想要的是我之前讨论过的滚动平均值。任何帮助,将不胜感激。谢谢!
数据如下:
dataframe = d
date place total
2020-01-10 A 10
2020-01-11 A 6
2020-01-12 A 8
2020-01-13 A 5
2020-01-14 A 7
2020-01-15 A 6
2020-01-16 A 9
2020-01-17 A 10
2020-01-10 B 11
2020-01-20 B 61
2020-01-21 B 82
2020-01-22 B 53
2020-01-23 B 74
2020-01-24 B 65
2020-01-25 B 96
2020-01-27 B 100
我写的计算每天新增人数的for循环是:
for(x in unique(d$place)) {
region <- d[d$place == x,]
n <- nrow(region)
for(i in 1:n-1) {
region$newpeople[i]<-region$total[i]-region$total[i+1]
}
region$newpeople[n]<-region$total[n]
}
然后我将估计值附加到相关的每日日期。我想要类似于过去 7 天的滚动平均值。
date_range <- seq(region$date[1], region$date[n], by = "days")
y <- paste(region$date, collapse = "|")
missing_dates <- date_range[!grepl(y, date_range)]
if (length(missing_dates) != 0) {
date <- missing_dates
place <- paste0(region$place[1])
total<- NA
newpeople <- NA
df <- data.frame(date, place, total, newpeople)
region <- rbind(region, df) %>%
arrange(date)
}
任何帮助将不胜感激!
【问题讨论】:
标签: r