如何使用NA绘制空的bloxplot递归

时间:2019-01-29 15:04:59

标签: r boxplot na

我正在尝试递归boxplot,但数据集中的一列为NA并返回: boxplot.default中的错误.default(split(mf [[response]],mf [-response]),...)

如何为该列绘制一个空的箱形图?

示例:

x1<-rnorm(40,4) #complete
x2<-c(rnorm(10,1),rep(NA,10),rnorm(20,2)) #incomplete
x3<-c(rep(NA,40)) #only NA
x4<-rnorm(40,4) #complete
clas<-c(rep(1,10),rep(2,10),rep(3,10),rep(4,10))
dat<-cbind(x1,x2,x3,x4,clas)
dat

for(i in 1:4){
boxplot(dat[,i]~factor(clas))
x11()
}

我真的被困在这里

1 个答案:

答案 0 :(得分:0)

R不知道要为y轴使用什么最小值和最大值。但是您可以生成伪造的y向量,只需将border =“ white”设置为不可见即可。

x1<-rnorm(40,4) #complete
x2<-c(rnorm(10,1),rep(NA,10),rnorm(20,2)) #incomplete
x3<-c(rep(NA,40)) #only NA
x4<-rnorm(40,4) #complete
clas<-c(rep(1,10),rep(2,10),rep(3,10),rep(4,10))
dat<-cbind(x1,x2,x3,x4,clas)
dat

for(i in 1:4){
  if(all(is.na(dat[,i]))) {
    #set y axis min and max
    y.min <- 1
    y.max <- 5
    y.vec <- c(rep(y.min, nrow(dat)- 1), y.max)
    boxplot(y.vec~factor(clas), border = "white")
  } else boxplot(dat[,i]~factor(clas))
  x11()
}