计算R中计数的总和

试图计算R中计数的滚动总和。我查看了此SO线程:

R dplyr rolling sum

和其他人。

library(tidyverse)
library(RcppRoll)

client <- c('a','a','b','c','c')
count <- c(1,2,3,5,6,4)
date <- c('2018-01-31','2018-02-28','2018-01-31','2018-01- 
31','2018-02-28')

df <- data.frame(client,count,date)

rolling<- df %>%
arrange(client,date) %>%
group_by(client,date ) %>%
mutate(roll_sum = rollapplyr(count,12,sum,partial=T))

有人可以指出我做错了什么,以便我纠正吗?在此示例中,roll_sum仅等于原始计数。我想创建各组的总和。

更新以显示具有12个月以上数据的样本:

library(tidyverse)
library(RcppRoll)

client <- c('a')
count <- c(1,4,8,9,10,13)
date <- c('2018-01-31','2018-03-31','2018-04-30','2018-05- 
31','2018-06-30','2018-07-31','2018-08-31','2018-09-30','2018-10-31','2018- 
11-30','2018-12-31','2019-01-31')

df <- data.frame(client,date) %>%
group_by(client) %>%
mutate(roll_sum = rollapplyr(count,partial=T))

已更新以显示所需的输出:

Client     Period         Count    12 Month Rolling Sum
a          2018-01-31        1     1
a          2018-02-28        2     3
a          2018-03-31        3     6
a          2018-04-30        4     10
a          2018-05-31        5     15
a          2018-06-30        6     21 
a          2018-07-31        7     28
a          2018-08-31        8     36
a          2018-09-30        9     45
a          2018-10-31        10    55
a          2018-11-30        11    66
a          2018-12-31        12    78
a          2019-01-31         5    82

请注意,2019-01-31行开始了一个新的12个月期限。以后每个月还应该 预先感谢

shinelqw 回答:计算R中计数的总和

对于最后一行的rollapplyr函数,您可以尝试zoo::rollapplyr吗?

df %>%
  arrange(client,date) %>%
  group_by(client) %>%
  mutate(roll_sum = zoo::rollapplyr(count,12,sum,partial=TRUE))
本文链接:https://www.f2er.com/3157689.html

大家都在问