因子函数的文档指出:
一个因子的代码可能包含NA。对于数字x,设置排除= NULL使NA成为附加级别(打印为); 默认情况下,这是 最后一级。
我不想要这个。
我当前的数据如下:
我希望我的因子水平根据组内大小进行排序,其中包括我的NA值观察值。有什么办法吗?
到目前为止,我已经尝试过重命名NA值,以便进行其他更改(使用ifelse()和is.na())以及factor函数中的exclude = NULL选项。
我当前的代码(我创建了一个排序表,然后根据该表对因子水平进行排序):
vettig_tabell<-table(fulldata$gymnasiegrov,fulldata$totstatus_tri,exclude=NULL)
vettig_tabell<-as.data.frame(vettig_tabell)
vettig_tabell<-spread(vettig_tabell,Var2,Freq)
vettig_tabell<-vettig_tabell%>%mutate(ongoing=`pågående studier`/(`pågående studier` + `tidigt avbrott eller återbud` + `troligt avbrott`))
#sorting by relative frequency#
vettig_tabell<-vettig_tabell%>%arrange(ongoing)
#Trying to use order of programmes sorted on relative frequency as factor levels#
fulldata$gymnasiegrov<-factor(fulldata$gymnasiegrov,exclude=NULL levels=vettig_tabell$Var1,ordered=TRUE)
fulldata %>%
as_tibble() %>%
group_by(gymnasiegrov,totstatus_tri) %>%
summarise(antal = n()) %>%
mutate(andel = antal / sum(antal))%>%
ggplot(.) +
geom_col(mapping = aes(x = gymnasiegrov,y = andel)) +
coord_flip() +
facet_wrap(~totstatus_tri)
数据摘录:
structure(list(gymnasiegrov = c("Hotell- och Restaurang",NA,"specialutformat program","komvux","bygg,el,fordon,hantverk,sjöfart,industriteknik","estetiska programmet","naturvetenskapliga programmet","medieprogrammet/medieproduktion","samhällsvetenskapliga programmet","friskoleprogram","teknikprogrammet","Handels- och administrationsprogrammet","Hotell- och Restaurang","samhälls- och ekonomiprogrammet","ekonomiprogrammet/ ekonomi","ekonomiprogrammet/ juridik",NA),totstatus_tri = c("troligt avbrott","tidigt avbrott eller återbud","pågående studier","troligt avbrott","pågående studier"
)),class = "data.frame",row.names = c(NA,-162L))
[1]: https://i.stack.imgur.com/i6emH.png