gpt4 book ai didi

r - dplyr 创建因子水平的聚合百分比

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

如何使用 dplyr 为每个状态创建因子变量水平的比例?例如,我想向数据框中添加一个变量,该变量指示每个州内女性的百分比。

# gen data
state <- rep(c(rep("Idaho", 10), rep("Maine", 10)), 2)
student.id <- sample(1:1000,8,replace=T)
gender <- rep( c("Male","Female"), 100*c(0.25,0.75) )
gender <- sample(gender, 40)
school.data <- data.frame(student.id, state, gender)

这是我知道是错误的尝试,但让我可以访问信息:
 middle %>%
group_by(state, gender %in%c("Female")) %>%
summarise(count = n()) %>%
mutate(test_count = count)

我很难使用 count 和 mutate 函数,这使得我很难再进一步。它的行为不像我期望的那样。

最佳答案

向现有数据框中添加新列:

school.data %>% 
group_by(state) %>%
mutate(pct.female = mean(gender == "Female"))

使用 summarize而不是 mutate如果您只想要每个状态一行而不是向原始数据添加一列。
school.data %>%
group_by(state) %>%
summarize(pct.female = mean(gender == "Female"))
# # A tibble: 2 x 2
# state pct.female
# <fctr> <dbl>
# 1 Idaho 0.75
# 2 Maine 0.70

关于r - dplyr 创建因子水平的聚合百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38857810/

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