1
我有几个账户,我试图计算移动30天的存款总额,按账户分组。我想做这个计算的31次迭代。因此,每个账户将有31笔款项,相当于30天的存款总额。例如,第一次迭代是从10/1到10/30的存款,第二次迭代是10/2到10/31 ....然后最终例如是11/1到11/30。R:循环逻辑来计算移动总和30天
我的第一个想法是做两个循环,用帐户和计算一组。
这里通过61
x <- data.frame(day = c(1:61),
account = ifelse(runif(61) <.5, 10, 11),
amount = rnorm(61,mean = 100, sd = 10))
numinterations<-31
numsumdays<-30
monthsums<- for(i in 1:ndays){
for(i in 1:numsumdays){
sum(testloop$daily_total) group by account
}
}
笨拙很好,真正的数据会被完全占用。那么不使用dplyr的解决方案呢?我不知道如何将该rollapply函数应用于其他分组函数 – Rob
我编辑了解决方案,因此不再需要dplyr。如果您想使用不标准的聚合函数,只需编写自己的函数并将其名称提供给FUN参数。只要它将一个向量值作为其输入,并将一个值作为它的输出值,它就可以工作。 – mpjdem
看起来总数是倒退的,所以从输出结果来看,账户10的第1天滚动总和应该是117.099,而不是1343.但是我看到,在第61天,正确的总和正在被累加起来。 – Rob