gpt4 book ai didi

r - 获取每个值的百分比并添加到下一列(聚合后)

转载 作者:行者123 更新时间:2023-12-02 09:20:55 25 4
gpt4 key购买 nike

我有一个这样的数据框:

    Col1       Col2       Col3            
partner1 A 20
partner1 B 70
partner2 A 30
partner2 C 20
partner3 B 50
partner3 C 40

如何转换它,以便它仅按 Col1 聚合,然后在新列中显示 Col2 的百分比:

    Col1       Col3                    Col4            
partner1 90 A: 22.2%, B: 77.7%
partner2 50 A: 60.0%, C: 40.0%
partner3 90 B: 55.6%, C: 44.4%

谢谢!

最佳答案

您需要summarize ,并正确格式化字符串,这里有一个选项 sprintf ,假设Col2 Col1 的每组中都是唯一的:

df %>% 
group_by(Col1) %>%

# use %s: %.1f%% to format Col2 as string, and the percentage as float rounded to one
# decimal place %.1f and the percentage symbol %%
summarise(Col4 = toString(sprintf("%s: %.1f%%", Col2, Col3 * 100/sum(Col3))),
Col3 = sum(Col3))

# A tibble: 3 × 3
# Col1 Col4 Col3
# <fctr> <chr> <int>
#1 partner1 A: 22.2%, B: 77.8% 90
#2 partner2 A: 60.0%, C: 40.0% 50
#3 partner3 B: 55.6%, C: 44.4% 90

关于r - 获取每个值的百分比并添加到下一列(聚合后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42681827/

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