【发布时间】:2020-09-13 02:40:54
【问题描述】:
假设我有一个关于多个幼儿园人口的大型数据集,我想计算一些汇总数据,例如每所学校的平均年龄。数据框的结构使得每所学校都有 3-5 岁的每个年龄的男性和女性人口。这是一个示例数据集:
library(dplyr)
school <- c("Alpha", "Alpha", "Alpha", "Alpha", "Alpha", "Alpha", "Beta", "Beta", "Beta", "Beta", "Beta", "Beta")
age <- c(3, 3, 4, 4, 5, 5, 3, 3, 4, 4, 5, 5)
gender <- c("M", "F", "M", "F", "M", "F", "M", "F", "M", "F", "M", "F")
df <- data.frame(school, age, gender, pop, stringsAsFactors = TRUE)
test_df <- data.frame(School = school,
Age = age,
Gender = gender,
Population = as.integer(rnorm(n = 12, mean = 30, sd = 5)))
我已经使用 group_by() 和 summarise() 函数对每个年龄值的 M 和 F 人口进行总计,
test_df2 <- test_df %>% group_by(School, Age) %>% summarise(Population = sum(Population))
注意:我在这里收到一条警告消息:
summarise()取消分组输出(用.groups参数覆盖)
但结果表是我想要的,所以不确定这是否重要。
但是我似乎无法从这里开始计算每所学校的平均年龄。我试过了
test_df2 %>% group_by(School) %>% summarise(Mean_Age = (Age*Population/sum(Population)))
但结果不是我所期望的 - 它是对每个年龄人口应用平均计算,而不是对整个学校。我正在尝试为每所学校制作一个平均年龄的表格。
对不起,如果我错过了一些非常基本的东西 - 我还是 r 的新手。感谢您的帮助!
【问题讨论】:
标签: r