如何在 R 中创建 运行 总和摘要

How to create a running sum summary in R

我想从数据框 df 创建一个摘要报告,其中每一行都是基于列 B 的列 A 的累积总和(其中 C是另一个 id 列)。以下是数据和输出:

set.seed(154)
df <- data.frame(B = append(append(rep(1,10),rep(2,10)),rep(3,10)),
                C = rep(1:10,3),
                A = sample(0:10,30,replace=T)) %>% arrange(B,C)

输出:

我写的是

df %>% arrange(B) %>% group_by(B) %>%
  transmute(test =sum(cumsum(A))) %>% unique()

但它只是对每一列 B 求和,而不是累加。

可能我们需要通过'B'得到'A'的sum然后得到累加和

library(dplyr)
df %>% 
  group_by(B) %>% 
  summarise(A = sum(A))  %>% 
  mutate(A = cumsum(A))

您需要在 group_by(B) 之后使用函数 cumsum,即:

library(tidyverse)
df %>% 
   group_by(B) %>% 
   mutate(A_cum_sum = cumsum(A))

请注意,arrange(B) 是不相关的,因为您的数据按 B 分组。从上下文我推断只有 arrange(C) 是重要的,并且您已经在准备 df 所以就不需要了。