R语言 如何从WeightLoss数据集创建多个因变量的箱形图?

jjhzyzn0  于 2022-12-20  发布在  其他
关注(0)|答案(2)|浏览(174)

我尝试使用car包中的WeightLoss数据集绘制箱形图。感兴趣的变量按月分隔,因此我按月单独绘制箱形图,其中包含所有组(控制,饮食,饮食和锻炼)显示。我只想得到组饮食和他们的体重减轻跨越3个月的跨度在1个箱形图而不是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")

我试着像这样把我只想要的那群人分开:

boxplot(wl1 ~ group$Diet, data=WeightLoss,  
        main="Weight Loss after 1 month",
        ylab="Weight loss",
        xlab="Group")

但我一直收到这样的错误:

Error in group$diet : $ operator is 
    invalid for atomic vectors
gz5pxeao

gz5pxeao1#

我们可以先将subset转换为饮食组,然后将月份转换为长格式(先将ID列转换为cbind)。

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=_)

该图显示了相应月份的体重减轻。

ryhaxcpt

ryhaxcpt2#

试试看

boxplot(wl1 ~ as.character(group),
         data= 
   WeightLoss[WeightLoss$group=="Diet", ],
         main="Weight Loss after 1 month",
         ylab="Weight loss",
         xlab="Group")

相关问题