我有一个按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`?解决了同一问题!我完全没有意识到这是函数/库的问题,所以我没有想到要寻找为什么摘要和变异行为不符合我的预期。
答案 0 :(得分:0)
使用mutate
时不是group_by
。在使用group_by
之后,它现在变成了group_by
对象,因此您必须使用summarize
X <- data %>%
group_by(cat) %>%
summarize(tot_daily_rev = sum(daily_rev))