Как мне показать проценты в группе в аспектах? - PullRequest
2 голосов
/ 31 октября 2019

Я пытаюсь визуализировать склонность учащихся бросать учебу в зависимости от их предыдущего образования. У меня есть две переменные интереса;"gymnasiegrov", который показывает их школьную программу, и "totstatus_tri", который показывает результат и имеет три уровня (выйти из первого семестра, уйти позже, еще в программе).

Пока мне удалось заработать приличныйвизуализация с использованием следующего кода:

ggplot(fulldata, aes(x=fct_infreq(gymnasiegrov))) + 
  geom_bar()+
  coord_flip() +
  scale_x_discrete(limits = rev(levels(fct_infreq(fulldata$gymnasiegrov))))+
  facet_wrap(~totstatus_tri)

Затем я получаю следующий результат:

enter image description here

Это нормально, но визуализацияв одних программах «намного» больше учеников, чем в других. Это делает шаблоны трудно различимыми. Я бы предпочел видеть внутригрупповые проценты для каждой программы, чтобы проценты каждого результата составляли до 100% для каждой программы по всем аспектам.

Например, самая большая программа (Ekonomiprogrammet / Ekonomi) имеетвсего 55 учеников, поэтому верхний столбец в первом фасете должен гласить 34/55, столбец во втором 15/55, столбец в третьем 6/55 и т. д.

Было бы это возможно?

РЕДАКТИРОВАТЬ:

Проводка данных из двух соответствующих переменных (так как у нас есть 14 различных подгрупп, «небольшая» выборка из 20 или около того наблюдений может быть не очень значимой):

structure(list(gymnasiegrov = c("Hotell- och Restaurang", NA, 
"specialutformat program", "komvux", NA, "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"estetiska programmet", "komvux", "naturvetenskapliga programmet", 
NA, "specialutformat program", "estetiska programmet", "medieprogrammet/medieproduktion", 
"specialutformat program", "specialutformat program", "komvux", 
"estetiska programmet", "samhällsvetenskapliga programmet", "specialutformat program", 
"friskoleprogram", "teknikprogrammet", "specialutformat program", 
"teknikprogrammet", "Handels- och administrationsprogrammet", 
"Hotell- och Restaurang", "samhällsvetenskapliga programmet", 
"samhälls- och ekonomiprogrammet", "specialutformat program", 
"komvux", "specialutformat program", "specialutformat program", 
"bygg, el, fordon, hantverk, sjöfart, industriteknik", "komvux", 
"Handels- och administrationsprogrammet", "teknikprogrammet", 
"teknikprogrammet", "friskoleprogram", "specialutformat program", 
"naturvetenskapliga programmet", "naturvetenskapliga programmet", 
"samhällsvetenskapliga programmet", "ekonomiprogrammet/ ekonomi", 
"samhällsvetenskapliga programmet", "samhällsvetenskapliga programmet", 
"Hotell- och Restaurang", "specialutformat program", "samhällsvetenskapliga programmet", 
"ekonomiprogrammet/ ekonomi", "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"ekonomiprogrammet/ ekonomi", "komvux", "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"estetiska programmet", "estetiska programmet", "samhällsvetenskapliga programmet", 
"ekonomiprogrammet/ ekonomi", "naturvetenskapliga programmet", 
"ekonomiprogrammet/ ekonomi", "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"ekonomiprogrammet/ ekonomi", "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"ekonomiprogrammet/ ekonomi", "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"naturvetenskapliga programmet", "Handels- och administrationsprogrammet", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"bygg, el, fordon, hantverk, sjöfart, industriteknik", "ekonomiprogrammet/ juridik", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ juridik", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"ekonomiprogrammet/ ekonomi", "Handels- och administrationsprogrammet", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "estetiska programmet", 
"ekonomiprogrammet/ ekonomi", "teknikprogrammet", "samhällsvetenskapliga programmet", 
"naturvetenskapliga programmet", "naturvetenskapliga programmet", 
"teknikprogrammet", "ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "samhällsvetenskapliga programmet", 
"samhällsvetenskapliga programmet", "naturvetenskapliga programmet", 
"ekonomiprogrammet/ juridik", "ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ juridik", 
"samhällsvetenskapliga programmet", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", 
"samhällsvetenskapliga programmet", "samhällsvetenskapliga programmet", 
"samhällsvetenskapliga programmet", "ekonomiprogrammet/ juridik", 
"teknikprogrammet", "teknikprogrammet", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "naturvetenskapliga programmet", 
"naturvetenskapliga programmet", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "naturvetenskapliga programmet", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ juridik", 
"teknikprogrammet", "ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "naturvetenskapliga programmet", 
"ekonomiprogrammet/ juridik", "naturvetenskapliga programmet", 
"teknikprogrammet", "ekonomiprogrammet/ juridik", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", 
"samhällsvetenskapliga programmet", "ekonomiprogrammet/ ekonomi", 
"samhällsvetenskapliga programmet", "estetiska programmet", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ juridik", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ ekonomi", "teknikprogrammet", 
"naturvetenskapliga programmet", "ekonomiprogrammet/ ekonomi", 
"ekonomiprogrammet/ ekonomi", "ekonomiprogrammet/ juridik", "ekonomiprogrammet/ ekonomi", 
NA, NA, NA, NA, NA, NA, NA, NA), totstatus_tri = c("troligt avbrott", 
"tidigt avbrott eller återbud", "pågående studier", "troligt avbrott", 
"troligt avbrott", "pågående studier", "pågående studier", "pågående studier", 
"pågående studier", "pågående studier", "pågående studier", "tidigt avbrott eller återbud", 
"tidigt avbrott eller återbud", "pågående studier", "tidigt avbrott eller återbud", 
"tidigt avbrott eller återbud", "pågående studier", "pågående studier", 
"troligt avbrott", "pågående studier", "pågående studier", "tidigt avbrott eller återbud", 
"troligt avbrott", "tidigt avbrott eller återbud", "pågående studier", 
"pågående studier", "pågående studier", "troligt avbrott", "troligt avbrott", 
"pågående studier", "pågående studier", "pågående studier", "pågående studier", 
"pågående studier", "tidigt avbrott eller återbud", "pågående studier", 
"pågående studier", "pågående studier", "pågående studier", "tidigt avbrott eller återbud", 
"pågående studier", "pågående studier", "tidigt avbrott eller återbud", 
"pågående studier", "tidigt avbrott eller återbud", "tidigt avbrott eller återbud", 
"tidigt avbrott eller återbud", "tidigt avbrott eller återbud", 
"pågående studier", "troligt avbrott", "tidigt avbrott eller återbud", 
"pågående studier", "tidigt avbrott eller återbud", "pågående studier", 
"troligt avbrott", "pågående studier", "pågående studier", "pågående studier", 
"pågående studier", "tidigt avbrott eller återbud", "pågående studier", 
"pågående studier", "tidigt avbrott eller återbud", "pågående studier", 
"pågående studier", "tidigt avbrott eller återbud", "tidigt avbrott eller återbud", 
"tidigt avbrott eller återbud", "pågående studier", "troligt avbrott", 
"tidigt avbrott eller återbud", "pågående studier", "pågående studier", 
"pågående studier", "pågående studier", "tidigt avbrott eller återbud", 
"tidigt avbrott eller återbud", "pågående studier", "pågående studier", 
"pågående studier", "pågående studier", "pågående studier", "pågående studier", 
"pågående studier", "pågående studier", "pågående studier", "pågående studier", 
"pågående studier", "tidigt avbrott eller återbud", "pågående studier", 
"pågående studier", "pågående studier", "pågående studier", "pågående studier", 
"troligt avbrott", "troligt avbrott", "pågående studier", "pågående studier", 
"tidigt avbrott eller återbud", "pågående studier", "tidigt avbrott eller återbud", 
"pågående studier", "pågående studier", "pågående studier", "tidigt avbrott eller återbud", 
"pågående studier", "troligt avbrott", "tidigt avbrott eller återbud", 
"pågående studier", "pågående studier", "troligt avbrott", "pågående studier", 
"pågående studier", "tidigt avbrott eller återbud", "tidigt avbrott eller återbud", 
"pågående studier", "pågående studier", "pågående studier", "troligt avbrott", 
"pågående studier", "tidigt avbrott eller återbud", "pågående studier", 
"tidigt avbrott eller återbud", "troligt avbrott", "pågående studier", 
"pågående studier", "pågående studier", "pågående studier", "troligt avbrott", 
"pågående studier", "pågående studier", "pågående studier", "pågående studier", 
"pågående studier", "pågående studier", "pågående studier", "tidigt avbrott eller återbud", 
"troligt avbrott", "pågående studier", "pågående studier", "tidigt avbrott eller återbud", 
"tidigt avbrott eller återbud", "pågående studier", "pågående studier", 
"troligt avbrott", "troligt avbrott", "pågående studier", "tidigt avbrott eller återbud", 
"tidigt avbrott eller återbud", "pågående studier", "troligt avbrott", 
"pågående studier", "pågående studier", "tidigt avbrott eller återbud", 
"pågående studier", "pågående studier", "pågående studier", "pågående studier", 
"troligt avbrott", "pågående studier", "pågående studier", "pågående studier"
)), row.names = c(NA, -162L), class = "data.frame")

1 Ответ

1 голос
/ 31 октября 2019

Может быть что-то вроде этого (где antal - ваша переменная подсчета)?

library(tidyverse)
fulldata %>% 
    group_by(gymnasiegrov) %>% 
    mutate(andel = antal / sum(antal)) %>% 
    ggplot(.) + 
    geom_bar(mapping = aes(x = gymnasiegrov, y = andel)) + 
    coord_flip() + 
    facet_wrap(~totstatus_tri)

Редактировать:

fulldata %>%
  as_tibble() %>%
  group_by(gymnasiegrov, totstatus_tri) %>% 
  summarise(antal = n()) %>% 
  mutate(andel = antal / sum(antal))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...