如何解决试图计算份额 - 汇总功能不起作用
我正在尝试计算每个国家/地区的某个可变成本在总成本中所占的份额。但是,当我尝试通过 mutate 创建“共享”列时,所有答案都为 1。
我使用的代码如下:
db %>%
group_by(country,group) %>%
summarize(cost=sum(cost)) %>%
mutate(share=cost/sum(cost))
这是它正在生成的表:
# Groups: cluster [18]
cluster group cost share
<chr> <chr> <dbl> <dbl>
1 AT A 7810. 1
2 AU C 7786. 1
3 CA C 5920. 1
4 KO B 172702. 1
5 DE A 40894. 1
6 ES A 26357. 1
7 FR A 65735. 1
8 GB C 11240. 1
9 IT A 85045. 1
10 JP B 10069. 1
我已尝试在 group_by() 上反转组和国家/地区的位置,但份额列仍将份额作为组的百分比返回,而不是总和。为什么会发生这种情况,我该如何解决?
解决方法
这是因为 <div id="container">
<div id="content"></div>
</div>
<pre id="output">0</p>
的默认行为是在按多个变量分组时输出分组数据帧(它删除一个变量并保留下一个)。
要解决它,您可以添加一个 summarise
:
ungroup
或者从 dplyr 版本 > 1.0.0:
db %>%
group_by(country,group) %>%
summarize(cost=sum(cost)) %>%
ungroup() %>%
mutate(share=cost/sum(cost))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。