我正在尝试递归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()
}
我真的被困在这里
答案 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()
}