有没有办法用简单的代码在单独的图中绘制 R 中的多个级别变量?

Is there a way to plot multiple levels variables in R in separate graph with a simple code?

我想知道是否有人知道如何执行这段代码,但每个级别都是单独绘制的。

sites<-levels(OrchardSprays$treatment)
par(mfcol=c(4,2))
for (i in 1:length(sites)) {
  here_tmp<-sites[i]
  plot(droplevels(subset(OrchardSprays, Site = here_tmp, select = c(treatment,decrease))))
  }

这是它给我的输出。但我想要不同级别的不同图表。我不知道为什么它给我相同的图表...

您的问题似乎与您使用 subset 的方式有关。首先,数据集中没有名为 Site 的变量。其次,Site = here_tmp不是逻辑表达式。

假设您的意思是 treatment 而不是 Site,试试这个:

sites <- levels(OrchardSprays$treatment)
par(mfcol=c(4,2))
for (i in 1:length(sites)) {
  here_tmp<-sites[i]
  plot(droplevels(subset(OrchardSprays, treatment == here_tmp, 
       select = c(treatment,decrease))))
}

我不太确定这是否是您想要的结果,因为就我个人而言,我认为没有理由将它们放在不同的地块中。

如果有帮助,请告诉我!

我同意@SimonG 的观点,不清楚为什么要将每个级别绘制在单独的图表上,但这里有一种使用 ggplot2 的方法,它有一个很好的系统无需太多额外代码即可创建变量每个级别的图:

library(ggplot2)

ggplot(OrchardSprays, aes(treatment, decrease)) +
  geom_boxplot() +
  facet_wrap(~treatment, scales="free_x", ncol=2)

要将所有箱线图放在一张图中,只需删除最后一行:

ggplot(OrchardSprays, aes(treatment, decrease)) +
  geom_boxplot()