添加均值时的箱线图错误
Box plot error when adding mean
我意识到之前有人问过这个问题,有人建议使用 ggplot、lattice 等。我的问题涉及根据分类变量将平均值添加到箱线图上。
这是我的代码,但它不起作用:
第 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
现在,我是想太多了还是有一种非常简单的方法可以根据母体肥胖组(正常体重与肥胖)。如果能提供任何帮助和建议,我将不胜感激。
非常感谢您
只需在points()
中使用x = 1:length(means)
(根据您的组数)。这是一个 iris
的示例,因为您没有提供数据。
data(iris)
means <- tapply(iris$Sepal.Length, iris$Species, mean)
plot(iris$Species, iris$Sepal.Length)
points(x = 1:length(means), y = means, pch = 10)
我意识到之前有人问过这个问题,有人建议使用 ggplot、lattice 等。我的问题涉及根据分类变量将平均值添加到箱线图上。
这是我的代码,但它不起作用:
第 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
现在,我是想太多了还是有一种非常简单的方法可以根据母体肥胖组(正常体重与肥胖)。如果能提供任何帮助和建议,我将不胜感激。
非常感谢您
只需在points()
中使用x = 1:length(means)
(根据您的组数)。这是一个 iris
的示例,因为您没有提供数据。
data(iris)
means <- tapply(iris$Sepal.Length, iris$Species, mean)
plot(iris$Species, iris$Sepal.Length)
points(x = 1:length(means), y = means, pch = 10)