箱图主要是用最小值、下四分位数(第25百分位数)、中位数(第50百分位数)、上四分位数(第75百分位数)以及最大值来考察连续变量的分布情况的图形。下面我们介绍如何利用R的boxplot函数绘制箱图。首先我们需要生成一个数据集:
dataset =data.frame(id=c(1:300),x1=rnorm(300,20,6), sex=sample(c("0","1"),300,replace=TRUE), smokestatus=sample(c("1","2","3"),300,replace=TRUE))
该数据集包含四个变量,分别是id,x1,sex,smokestatus。其中x1是连续型变量,sex和smokestatus都是分类变量。其中sex的0代表“man”,1代表“female”;smokestatus的1代表“never smoke”,2代表“current smoke”,3代表“quit smoke”。
1.绘制简单箱图:
attach(dataset)
boxplot(x1,data=dataset,main="Boxplot",ylab="x1",col="gold")#main是给图形添加题目,ylab是添加y轴
关于箱图的结果解读在前面的推文已经介绍过,这里不在进行解释。请大家参考:
2.绘制并列箱图进行跨组比较(此处是以sex为分组变量,即分性别来看男性和女性的x1是否相同):
boxplot(x1~sex,data=dataset,main="Boxplot",ylab="x1",xlab="sex",col="gold",notch=TRUE)#notch=TRUE,可以得到含凹槽的箱图,col是给图形添加颜色。
3.绘制两个交叉因子的箱图(此处我们以sex和smokestatus两个作为交叉因子):
dataset$sex.f=factor(dataset$sex,levels =c("0","1"),labels =c("M","F"))#创建sex的因子dataset$smokestatus.f=factor(dataset$smokestatus,levels =c("1","2","3"),labels =c("n","c","q"))#创建smokestatus的因子
此时查看数据,dataset中多了两列,分别是我们刚才所创建的两个因子sex.f和smokestatus.f。
boxplot(x1~sex.f*smokestatus.f,data=dataset,col=c("gold","darkgreen"),varwidth=TRUE,main="Boxplot group by smoke status",xlab="status",notch=TRUE)
varwidth=TRUE是使箱线图的宽度与它们各自的样本大小成正比
其中,M代表男性,F代表女性; n代表从不吸烟,c代表仍在吸烟,q代表已戒烟。
我们可以看到生成了6个箱图,它们分别是三种吸烟状态(smokestatus)两个性别(sex)的组合下x1值的箱图,如M.n代表男性从不吸烟。这就等同于是SPSS软件里面的簇状箱图。
今天箱图的学习就到这。
欢迎大家关注我的weixingongzhonghao
R语言与SPSS学习笔记
网友评论