У меня есть фрейм данных, в котором я хочу рассчитать количество и столбец пропорции или процента по 3 различным факторам. В этом примере это будет по штату, полу и возрасту.
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)
age <- rep( c("Primary school","Secondary school"), 100*c(0.5,0.5) )
age <- sample(age, 40)
school.data <- data.frame(student.id, state, gender, age)
Для расчета этого с двумя факторами очень хорошее решение здесь: dplyr для создания совокупного процента уровней факторов
Но при использовании кода для> 2 факторов решение дает неверные значения в столбце пропорций. Кто-нибудь знает, как найти пропорции при взгляде хотя бы на 3 фактора?
Код, который я пробовал:
proportions <- group_by(school.data, state, gender, age) %>%
summarize(n = length(student.id)) %>%
ungroup %>% group_by(state) %>%
mutate(proportion = n / sum(n))
В пропорциях df я хочу, чтобы пропорции были, например: Айдахо женская начальная школа против Айдахо женская средняя школа. Таким образом, соотношение основано на 1 факторе, когда остальные 2 фактора являются постоянными. И я хотел бы рассчитать эти цифры по всей DF. Но числа пропорций, которые генерирует код, не соответствуют этим.
Я хочу, чтобы данные были в этом формате, чтобы я мог создать столбчатую диаграмму в ggplot с возможностью печати чисел или процентов в верхней части. столбцов, как они здесь Отображение значений данных на гистограмме с накоплением в ggplot2