gpt4 book ai didi

r - 使用 dplyr 获取相对频率百分比的更智能方法?

转载 作者:行者123 更新时间:2023-12-02 08:33:04 24 4
gpt4 key购买 nike

作为一种爱好学习 R 并使用我的一些炉石比赛

背景:使用 dplyr 来到这里:

todayhs %.%
group_by(hero, result) %.%
select(hero, opponent, result) %.%
summarise(
count = n())

数据:

hero      result    count   
Mage loss 12
Mage win 9
Rogue loss 3
Rogue win 1
Warrior loss 6
Warrior win 5

预期结果:该特定英雄的一列百分比

hero      result    count   percent
Mage loss 12 57%
Mage win 9 43%
Rogue loss 3 75%
Rogue win 1 25%
Warrior loss 6 55%
Warrior win 5 45%

我的障碍:
我了解 filter(hero = "Mage") 并使用 prop.table 会得到该个别类别的百分比结果,但是有没有办法一次获取上述所有数据?

我的尝试

 transform(todayhs.mage, percents = ifelse(hero == "Mage",    
prop.table(todayhs.mage$count[1:2]),""))

给我

 hero      result count      percents
Mage loss 12 0.571428571428571
Mage win 9 0.428571428571429
Rogue loss 3
Rogue win 1
Warrior loss 6
Warrior win 5

我假设我可以编写一个函数并将它们单独剥离出来..但感觉不对。也许有更好的方法使用 dplyr 添加 group_by(hero, count)?我在这里挠头。

最佳答案

你可以试试:

todayhs <- read.table(text="hero      result    count   
Mage loss 12
Mage win 9
Rogue loss 3
Rogue win 1
Warrior loss 6
Warrior win 5",sep="",header=T,stringsAsFactors=F)

library(dplyr)
todayhs%>%
group_by(hero)%>%
mutate(percent=paste0(round(100*count/sum(count)),"%"))
# Source: local data frame [6 x 4]
#Groups: hero

# hero result count percent
# 1 Mage loss 12 57%
# 2 Mage win 9 43%
# 3 Rogue loss 3 75%
# 4 Rogue win 1 25%
# 5 Warrior loss 6 55%
# 6 Warrior win 5 45%

关于r - 使用 dplyr 获取相对频率百分比的更智能方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24774721/

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