gpt4 book ai didi

r - 计算组内类别的比例

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

我想计算组内项目的百分比。例如,有 2 组,每组包含 3 个水果。我想知道每组中水果的比例是多少(即每组加起来应该是 100%)。我可以使用下面的代码来实现这一点,但感觉太冗长了。任何人都可以提出任何改进或已经存在的功能来简化它吗?

library(tidyverse)
#some data
fruit <- rep(c("apples", "oranges", "bananas"),
times=c(3, 2, 5))
group <- rep(c(1, 2), times=c(35, 65))
df <- data.frame(fruit, group, stringsAsFactors=FALSE)

#get %'s for each fruit within each group
df2 <- df %>%
#get numerator
group_by(fruit, group) %>%
summarise(`Total by fruit and group` = n()) %>%
#get denominator
left_join(df %>%
group_by(group) %>%
summarise(`Total by group` = n())) %>%
#work out % as numerator/denominator *100
mutate(`%`=`Total by fruit and group` / `Total by group`*100 ) %>%
select(fruit, group, `%`) %>%
arrange(group)

最佳答案

使用 dplyr 你可以这样做:

Reprex

  • 代码
library(dplyr)

df %>%
group_by(group) %>%
count(fruit) %>%
mutate(freq = n / sum(n) * 100) %>%
select(-n)
  • 输出
#> # A tibble: 6 x 3
#> # Groups: group [2]
#> group fruit freq
#> <dbl> <chr> <dbl>
#> 1 1 apples 34.3
#> 2 1 bananas 42.9
#> 3 1 oranges 22.9
#> 4 2 apples 27.7
#> 5 2 bananas 53.8
#> 6 2 oranges 18.5

reprex package 于 2022-02-19 创建(v2.0.1)

关于r - 计算组内类别的比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71185490/

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