Почему функция переупорядочения работает только частично? - PullRequest
1 голос
/ 07 ноября 2019

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

ggplot(fulldata,aes(x=fct_reorder(gymnasiegrov, PERC_CREDIT, .fun = median), y=PERC_CREDIT))+geom_boxplot()+coord_flip()

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

enter image description here

По какой-то неизвестной причине значения сортируются только до 11-й категории (samhälls- och ekonomiprogrammet). После этого позиции кажутся совершенно произвольными.

Почему это происходит и как это исправить?

небольшой отрывок данных:

structure(list(gymnasiegrov = c("Hotell- och Restaurang", "Oklart", 
"specialutformat program", "komvux", "Oklart", "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"estetiska programmet", "komvux", "naturvetenskapliga programmet", 
"Oklart", "specialutformat program", "estetiska programmet", 
"medieprogrammet/medieproduktion", "specialutformat program", 
"specialutformat program", "komvux", "estetiska programmet", 
"samhällsvetenskapliga programmet", "specialutformat program", 
"friskoleprogram"), PERC_CREDIT = c(0.333333333333333, 0, 0.25, 
0.105555555555556, 0, 0.6, 0.0111111111111111, 0.705555555555556, 
0.377777777777778, 0.527777777777778, 0.461111111111111, NA, 
0, 0.75, 0, 0, 0.45, 0.7, 0, 0.65)), row.names = c(NA, 20L), class = "data.frame")

большой отрывок данных:

    structure(list(gymnasiegrov = c("Hotell- och Restaurang", "Oklart", 
"specialutformat program", "komvux", "Oklart", "bygg, el, fordon, hantverk, sjöfart, industriteknik", 
"estetiska programmet", "komvux", "naturvetenskapliga programmet", 
"Oklart", "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", 
"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", 
"Oklart", "Oklart", "Oklart", "Oklart", "Oklart", "Oklart", "Oklart"
), PERC_CREDIT = c(0.333333333333333, 0, 0.25, 0.105555555555556, 
0, 0.6, 0.0111111111111111, 0.705555555555556, 0.377777777777778, 
0.527777777777778, 0.461111111111111, NA, 0, 0.75, 0, 0, 0.45, 
0.7, 0, 0.65, 0.416666666666667, NA, 0, 0, 0.733333333333333, 
0.35, 0.716666666666667, 0.0111111111111111, 0.0111111111111111, 
0.0388888888888889, 0.711111111111111, 0.633333333333333, 0.705555555555556, 
0.488888888888889, 0.633333333333333, 0, 0.716666666666667, 0.261111111111111, 
0.716666666666667, 0.522222222222222, 0, 0.766666666666667, 0.727777777777778, 
NA, 0.255555555555556, 0, 0, 0, NA, 0.638888888888889, 0.0111111111111111, 
0, 0.65, NA, 0.716666666666667, 0.0111111111111111, 0.522222222222222, 
0.75, 0.705555555555556, 0.7, NA, 0.344444444444444, 0.627777777777778, 
0, 0.622222222222222, 0.105555555555556, 0, NA, 0, 0.616666666666667, 
0.211111111111111, 0.0111111111111111, 0.583333333333333, 0.605555555555556, 
0.6, 0.388888888888889, 0, 0, 0.733333333333333, 0.388888888888889, 
0.633333333333333, 0.6, 0.588888888888889, 0.633333333333333, 
0.455555555555556, 0.283333333333333, 0.527777777777778, 0.644444444444444, 
0.211111111111111, NA, 0.6, 0.6, 0.355555555555556, 0.622222222222222, 
0.572222222222222, 0.194444444444444, 0, 0.605555555555556, 0.427777777777778, 
0, 0.65, 0, 0.122222222222222, 0.533333333333333, 0.422222222222222, 
0, 0.522222222222222, 0, 0.15, 0.366666666666667, 0.572222222222222, 
0.05, 0.194444444444444, 0.733333333333333, 0, 0, 0.733333333333333, 
0.616666666666667, 0.733333333333333, 0, 0.633333333333333, 0.0111111111111111, 
0.65, 0.0111111111111111, 0, 0.733333333333333, 0.622222222222222, 
0.633333333333333, 0.594444444444444, 0, 0.627777777777778, 0.616666666666667, 
0.205555555555556, 0.0111111111111111, 0.616666666666667, 0.527777777777778, 
0.633333333333333, 0, 0.0111111111111111, 0.716666666666667, 
0.661111111111111, 0, 0, 0.622222222222222, 0.544444444444444, 
0, 0.0666666666666667, 0.172222222222222, 0, 0, 0.338888888888889, 
0, 0.516666666666667, 0.705555555555556, 0.616666666666667, 0.4, 
0.25, 0.25, 0.0944444444444444, 0.177777777777778, 0.583333333333333, 
0.583333333333333)), class = "data.frame", row.names = c(NA, 
-162L))

1 Ответ

2 голосов
/ 07 ноября 2019

В ваших данных отсутствуют значения. Если вы хотите игнорировать эти значения при расчете медианы, вам нужно явно указать fct_reorder, иначе пропущенные значения будут отсортированы до конца.

ggplot(fulldata,aes(x=fct_reorder(gymnasiegrov, PERC_CREDIT, .fun = median, na.rm=T), y=PERC_CREDIT))+
  geom_boxplot()+
  coord_flip()

enter image description here

...