Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何确保';NA';是";不是";最后一个因素水平?_R_Na - Fatal编程技术网

R 如何确保';NA';是";不是";最后一个因素水平?

R 如何确保';NA';是";不是";最后一个因素水平?,r,na,R,Na,系数函数的文件说明: 因子的代码可能包含NA。对于数字x,设置exclude= NULL使NA成为额外级别(打印为)默认情况下,这是 最后一级。 我不要这个 我当前的数据如下所示: 我希望我的因子水平按照组内大小排序,这包括我的观察值和NA值。有没有办法做到这一点 到目前为止,我已经尝试重命名我的NA值,以便使用其他(使用ifelse()和is.NA())函数(factor函数中的exclude=NULL选项)和addNA函数 我的当前代码(我创建了一个排序表,然后根据该表对因子级别进行排序)

系数函数的文件说明:

因子的代码可能包含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)