R 如何确保';NA';是";不是";最后一个因素水平?
系数函数的文件说明: 因子的代码可能包含NA。对于数字x,设置exclude= NULL使NA成为额外级别(打印为)默认情况下,这是 最后一级。 我不要这个 我当前的数据如下所示: 我希望我的因子水平按照组内大小排序,这包括我的观察值和NA值。有没有办法做到这一点 到目前为止,我已经尝试重命名我的NA值,以便使用其他(使用ifelse()和is.NA())函数(factor函数中的exclude=NULL选项)和addNA函数 我的当前代码(我创建了一个排序表,然后根据该表对因子级别进行排序):R 如何确保';NA';是";不是";最后一个因素水平?,r,na,R,Na,系数函数的文件说明: 因子的代码可能包含NA。对于数字x,设置exclude= NULL使NA成为额外级别(打印为)默认情况下,这是 最后一级。 我不要这个 我当前的数据如下所示: 我希望我的因子水平按照组内大小排序,这包括我的观察值和NA值。有没有办法做到这一点 到目前为止,我已经尝试重命名我的NA值,以便使用其他(使用ifelse()和is.NA())函数(factor函数中的exclude=NULL选项)和addNA函数 我的当前代码(我创建了一个排序表,然后根据该表对因子级别进行排序)
一个简单的解决方案是在开始时替换fulldata中的NA。我在示例中使用了“Missing”。因为这是一个开始的因素,所以您需要将其转换为字符,然后使用replace_NA
fulldata <- fulldata %>% mutate(gymnasiegrov=replace_na(as.character(gymnasiegrov),"Missing"))
fulldata%变异(Gymsiegrov=replace_na(如字符(Gymsiegrov),“缺失”))
然后你做表格
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)
以下是一种方法:
library(tidyverse)
fulldata %>%
as_tibble() %>%
group_by(gymnasiegrov, totstatus_tri) %>%
summarise(antal = n()) %>%
mutate(andel = antal / sum(antal)) %>%
ungroup %>%
replace_na(list(gymnasiegrov = 'NA')) %>%
arrange(desc(andel)) %>%
mutate(gymnasiegrov = factor(gymnasiegrov, levels = unique(gymnasiegrov))) %>%
ggplot() +
geom_col(mapping = aes(x = gymnasiegrov, y = andel)) +
coord_flip() +
facet_wrap(~totstatus_tri)
我可以摘录两个相关变量:)如果有帮助,我可以在应用因子函数并尝试排序之前共享未更改的数据。我认为您应该这样做。因为现在fulldata中的NAs可能来自您的factoringYeah,想想看,我看不出“不”这样做的原因。我会立即更换dput。谢谢!我以前尝试过类似的方法,并编写了test$,我想你没有将列转换为字符吧?如果您尝试在因子中引入一个新字符串,它将再次变为NA:)哦,是的,还有一件事,您不能使用ifelse这样的。它应该是test$gysizegrov[is.na(test$gysizegrov)]
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)
fulldata$gymnasiegrov<-factor(fulldata$gymnasiegrov,levels=vettig_tabell$Var1, ordered=TRUE)
library(tidyverse)
fulldata %>%
as_tibble() %>%
group_by(gymnasiegrov, totstatus_tri) %>%
summarise(antal = n()) %>%
mutate(andel = antal / sum(antal)) %>%
ungroup %>%
replace_na(list(gymnasiegrov = 'NA')) %>%
arrange(desc(andel)) %>%
mutate(gymnasiegrov = factor(gymnasiegrov, levels = unique(gymnasiegrov))) %>%
ggplot() +
geom_col(mapping = aes(x = gymnasiegrov, y = andel)) +
coord_flip() +
facet_wrap(~totstatus_tri)