gpt4 book ai didi

r - 考虑到第一个数据框中的一个变量是另一个数据框中不同值的汇总总和,如何计算百分比

转载 作者:行者123 更新时间:2023-12-01 01:11:14 25 4
gpt4 key购买 nike

当我尝试计算百分比时,我遇到了两个数据框的问题。在第一个数据框中,我累积了一个人进行的不同操作的数量。这些是数据框,第一个是带有每个人信息的原始数据框:

z=data.frame(ID=c("0001","0002","0002","0001","0003","0003","0004","0004","0001","0003"),Amount=c(10,20,10,30,50,10,40,10,10,30),Place=c("KFC","Marcys","Ezone","Ezone","Italocafe","Italocafe","KFC","Walmart","KFC","KFC"))

当我汇总后,我有这个:
   ID       Final.Amount
1 0001 50
2 0002 30
3 0003 90
4 0004 50

我想计算与 Place 变量相关的每个 ID 的百分比,我尝试使用 plyr 但我没有得到结果。我在寻找这样的人:
 ID     Final.Amount Perct.KFC Perct.Macys Perct.Ezonne Perct.Italocafe Percent.Walmart
1 0001 50 40% 0% 60% 0% 0%
2 0002 30 0% 67% 33% 0% 0%
3 0003 90 33% 0% 0% 67% 0%
4 0004 50 80% 0% 0% 0% 20%

我试过 plyr 但我没有得到正确的结构,我不知道我是否需要 sqldf 或其他包。

最佳答案

使用 reshape2 的解决方案:

library(reshape2)
d <- acast(z, ID~Place, value.var="Amount", fun=sum)
prop.table(d,1)*100

这使 :
        Ezone Italocafe      KFC   Marcys Walmart
0001 60.00000 0.00000 40.00000 0.00000 0
0002 33.33333 0.00000 0.00000 66.66667 0
0003 0.00000 66.66667 33.33333 0.00000 0
0004 0.00000 0.00000 80.00000 0.00000 20

关于r - 考虑到第一个数据框中的一个变量是另一个数据框中不同值的汇总总和,如何计算百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15414082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com