微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

试图计算份额 - 汇总功能不起作用

如何解决试图计算份额 - 汇总功能不起作用

我正在尝试计算每个国家/地区的某个可变成本在总成本中所占的份额。但是,当我尝试通过 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?