为什么重新排序功能只能部分起作用?

我正在尝试根据组内中位数的大小来排列箱形图,并使用以下代码:

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

我得到以下结果:

为什么重新排序功能只能部分起作用?

似乎由于某种未知原因,值仅被排序到第11类(samhälls-ochekonomiprogrammet)。之后,这些职位似乎完全是任意的。

为什么会这样?我该如何解决?

少量数据摘录:

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

大量数据摘录:

    structure(list(gymnasiegrov = c("Hotell- och Restaurang","friskoleprogram","teknikprogrammet","Handels- och administrationsprogrammet","Hotell- och Restaurang","samhälls- och ekonomiprogrammet","ekonomiprogrammet/ ekonomi","ekonomiprogrammet/ juridik","Oklart"
),0.65,0.416666666666667,0.733333333333333,0.35,0.716666666666667,0.0388888888888889,0.711111111111111,0.633333333333333,0.488888888888889,0.261111111111111,0.522222222222222,0.766666666666667,0.727777777777778,0.255555555555556,0.638888888888889,0.344444444444444,0.627777777777778,0.622222222222222,0.616666666666667,0.211111111111111,0.583333333333333,0.605555555555556,0.388888888888889,0.588888888888889,0.455555555555556,0.283333333333333,0.644444444444444,0.355555555555556,0.572222222222222,0.194444444444444,0.427777777777778,0.122222222222222,0.533333333333333,0.422222222222222,0.15,0.366666666666667,0.05,0.594444444444444,0.205555555555556,0.661111111111111,0.544444444444444,0.0666666666666667,0.172222222222222,0.338888888888889,0.516666666666667,0.4,0.0944444444444444,0.177777777777778,0.583333333333333)),class = "data.frame",-162L))
yaozhiying 回答:为什么重新排序功能只能部分起作用?

您的数据中缺少值。如果要在计算中位数时忽略这些值,则需要明确告诉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

本文链接:https://www.f2er.com/3143655.html

大家都在问