使用r(dplyr)对类别和日期求和[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用r(dplyr)对类别和日期求和[重复]相关的知识,希望对你有一定的参考价值。

我有一个数据集,可以按ID,类别和日期跟踪每日收入:

id       cat        date     daily_rev
111       A        3/09/19     $10
111       A        3/10/19     $15
111       A        3/11/19     $40
222       A        3/09/19     $100
222       A        3/10/19     $150
222       A        3/11/19     $50
333       B        3/09/19     $45
333       B        3/10/19     $10
333       B        3/11/19     $30

我想操纵数据按类别汇总所有日期:

cat     tot_daily_rev
 A          $365
 B          $85

当我使用这段代码时:

X <- data %>% group_by(cat) %>% mutate(tot_daily_rev = sum(daily_rev))

我得到一个数据框,其中有一个tot_daily_rev列,它是数据集中每一行的总和:

id       cat        date     daily_rev     tot_daily_rev
111       A        3/09/19     $10              $450
111       A        3/10/19     $15              $450
111       A        3/11/19     $40              $450
222       A        3/09/19     $100             $450
222       A        3/10/19     $150             $450
222       A        3/11/19     $50              $450
333       B        3/09/19     $45              $450
333       B        3/10/19     $10              $450
333       B        3/11/19     $30              $450

我已经引用了这篇文章:How to sum a variable by group?,但它并没有解决我的问题。

--

更新

Why does summarize or mutate not work with group_by when I load `plyr` after `dplyr`?解决了同样的问题!我完全没有意识到这是一个函数/库的问题,所以我没想到要搜索为什么汇总和变异没有像我预期的那样表现。

答案

当你使用mutate时,它不是group_by。你使用group_by后它现在是一个group_by对象,所以你必须使用summarize

X <- data %>% 
  group_by(cat) %>%
  summarize(tot_daily_rev = sum(daily_rev))

以上是关于使用r(dplyr)对类别和日期求和[重复]的主要内容,如果未能解决你的问题,请参考以下文章

R条件求和(组内条件)

Pandas 分别对每个类别的日期范围求和

R语言按组聚合求和实战(sum a variable by group):使用aggregate函数按组聚合求和使用tapply函数按组聚合求和按组聚合求和(使用dplyr包)

Python 相当于 R 的 grepl 和 dplyr 过滤器 [重复]

如何在php中对表格日期求和[重复]

dplyr 按行求和和其他函数,如 max