str*_*ent 5 r anova multivariate-testing manova
WeightLoss我正在尝试根据包中的数据集制作箱线图car。感兴趣的变量按月分隔,因此我分别按月绘制箱线图,显示所有组(对照组、饮食组、饮食组和运动组)。我只想在 1 个而不是 3 个箱线图中获得饮食组的箱线图及其 3 个月内的体重减轻情况。为了澄清,我需要ylab="Weight loss"和xlab="Month"作为我的轴。但我不知道如何做到这一点。
这是我能够制作的第一组可行的箱线图,但它们按月份分隔,并且所有组都显示在箱线图中。
library(car)
library(DescTools)
boxplot(wl1 ~ group, data=WeightLoss,
main="Weight Loss after 1 month",
ylab="Weight loss",
xlab="Group")
boxplot(wl2 ~ group, data=WeightLoss,
main="Weight Loss after 2 months",
ylab="Weight loss",
xlab="Group")
boxplot(wl3 ~ group, data=WeightLoss,
main="Weight Loss after 3 months",
ylab="Weight loss",
xlab="Group")
Run Code Online (Sandbox Code Playgroud)
我尝试将我只想这样的组分开:
boxplot(wl1 ~ group$Diet, data=WeightLoss,
main="Weight Loss after 1 month",
ylab="Weight loss",
xlab="Group")
Run Code Online (Sandbox Code Playgroud)
但我不断收到此错误:
Error in group$diet : $ operator is
invalid for atomic vectors
Run Code Online (Sandbox Code Playgroud)
我们可以首先subset将饮食分组,然后将reshape月份转换为长格式(cbind首先是 ID 列)。
library(car) ## to load `WeightLoss` data
subset(cbind(WeightLoss, id=seq_len(nrow(WeightLoss))), group == 'Diet') |>
reshape(varying=c("wl1", "wl2", "wl3"), timevar='months', dir='long', sep='') |>
boxplot(wl ~ months, data=_)
Run Code Online (Sandbox Code Playgroud)
该图显示了各个月份的体重减轻情况。