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

问题描述 投票:0回答:1

我有一个数据集,可以按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`?解决了同样的问题!我完全没有意识到这是一个函数/库的问题,所以我没想到要搜索为什么汇总和变异没有像我预期的那样表现。

r dplyr
1个回答
0
投票

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

X <- data %>% 
  group_by(cat) %>%
  summarize(tot_daily_rev = sum(daily_rev))
© www.soinside.com 2019 - 2024. All rights reserved.