我发现之前已经问过这个问题,并且有人建议使用ggplot,lattice等。我的问题是根据分类变量将平均值添加到boxplot上。
这是我的代码,但不起作用:
步骤1:根据孕产妇肥胖组,我使用tapply创建了一个载体,以获得4岁时bmi z分数的平均值:
means <- tapply(therapy$zbmi_4,therapy$Gruppe,mean,na.rm=TRUE) # calculate means
输出如下:
>means
Normal-weight Obese
-0.03207792 0.60130081
步骤2:根据孕产妇肥胖组,我在4岁时创建了一个简单的bmi z分数盒子图:
plot(therapy$Gruppe,therapy$zbmi_4,
xlab = 'Maternal BMI groups',
ylab = 'Offspring BMI z-scores at 4 years',
cex.lab=1.5, cex.axis=1.4, cex.main=1.6, cex.sub=1.5,
col=c("white","grey"), main="Effect of maternal obesity",
pch=16,cex=1)
points(x=therapy$Gruppe,y=means,pch=19, col="red") # add means
legend("topleft", legend=c("P-value <0.0001"), bty = "n", cex=1.5)
错误消息是:
>points(x=therapy$Gruppe,y=means,pch=19, col="red", type="l") # add means
Error in xy.coords(x, y) : 'x' and 'y' lengths differ
我完全理解这个问题。因为,有949个观察结果,只有2个手段。
> length(therapy$Gruppe)
[1] 949
> length(means)
[1] 2
现在,我是否想得太多,或者是否有一种非常简单的方法可以根据母体肥胖组(正常体重与肥胖)在每个方框图中添加“点”以获得平均bmi z评分。我非常感谢任何帮助和建议。
非常感谢你提前