r - Boxplot 在使用 NA 时存在问题 - 查找错误/错误
问题描述
看看这个最小的例子:
library(mosaic)
library(effects)
library(openxlsx)
library(corrgram)
library(GGally)
library(vcd)
library(corrplot)
library(ggpubr)
library(scales)
library(dplyr)
library(tidyr)
library(ggplot2)
#------------------------------------------------------------------
library(naniar)
l1 = c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,3,3,3,4,5)
l2 = c("N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A","N/A",2,2,2,2,2,3,3,3,4,4)
df <- data.frame (p = c(1:20),
q1=l1[1:20],
q2=l2[1:20]
)
dfn<-df %>% replace_with_na_all(condition = ~.x == "N/A")
preparedataboxplot <- select(dfn,p,q1,q2) %>% gather(key='Question_num', value='Antwort', -p)
preparedataboxplot <- preparedataboxplot %>% drop_na()
preparedataboxplot$Antwort<-unlist(preparedataboxplot$Antwort)
ggplot(preparedataboxplot,aes(x=factor(Question_num),y=Antwort))+
stat_boxplot(geom='errorbar',width=0.8)
我认为 NA 有问题。谁能找出究竟是什么问题?
解决方案
尝试这个 :
library(tidyverse)
df <- data.frame (p = 1:20,
q1=l1[1:20],
q2=l2[1:20])
df[df == 'N/A'] <- NA
df <- type.convert(df, as.is = TRUE)
preparedataboxplot <- select(df,p,q1,q2) %>% gather(key='Question_num', value='Antwort', -p)
preparedataboxplot <- preparedataboxplot %>% drop_na()
ggplot(preparedataboxplot,aes(x=factor(Question_num),y=Antwort))+
stat_boxplot(geom='errorbar',width=0.8)