我的问题与this post相同,但我想用dplyr:

使用R数据帧,例如:

df <- data.frame(id = rep(1:3, each = 5)
                 , hour = rep(1:5, 3)
                 , value = sample(1:15))

如何添加与id匹配的累积和列?

如果没有dplyr,上一篇文章的公认解决方案是:

df$csum <- ave(df$value, df$id, FUN=cumsum)

推荐答案

这样地?

df <- data.frame(id = rep(1:3, each = 5),
                 hour = rep(1:5, 3),
                 value = sample(1:15))

mutate(group_by(df,id), csum=cumsum(value))

或者,如果使用dplyr的管道操作器:

df %>% group_by(id) %>% mutate(csum = cumsum(value))

两种情况下的结果:

Source: local data frame [15 x 4]
Groups: id

   id hour value csum
1   1    1     4      4
2   1    2    14     18
3   1    3     8     26
4   1    4     2     28
5   1    5     3     31
6   2    1    10     10
7   2    2     7     17
8   2    3     5     22
9   2    4    12     34
10  2    5     9     43
11  3    1     6      6
12  3    2    15     21
13  3    3     1     22
14  3    4    13     35
15  3    5    11     46

R相关问答推荐

基于两个现有列创建新列

feature_weights参数没有影响Xgboost

如何生成包含可能条目列表而不是计数的表?

R数据帧中的布尔加法会产生布尔值而不是整值

在R中,将一个函数作为输入传递给另一个函数时进行参数判断

强制相关图以显示相关矩阵图中的尾随零

DT::可数据的正规表达OR运算符问题

变量计算按R中的行更改

根据R中的另一个日期从多列中 Select 最近的日期和相应的结果

根据R中两个变量的两个条件删除带有dspirr的行

获取一个数据库框架的摘要,该数据库框架将包含一列数据库框架,

Highcharter多次钻取不起作用,使用不同方法

如何使用列表中多个列表中的第一条记录创建数据框

使用R闪光显示所有数据点作为默认设置

按组计算列中1出现的间隔年数

随机森林的带Shap值的蜂群图

使用未知字符数(不受限制的最大长度)的Lookback有什么好的替代方案?

在R中的数据框上使用Apply()函数时,如何保留非数字列?

变异以按组从其他列创建具有最大和最小值的新列

把代码写成dplyr中的group_by/摘要更简洁吗?