Есть ли способ построить несколько переменных уровня в R в отдельном графе с помощью простого кода?
Интересно, знает ли кто-нибудь, как выполнить этот код, но каждый ли уровень отображается отдельно?
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))))
}
Это вывод, который он мне дает. Но я хочу разные графики разных уровней. Я не знаю, почему он дает мне такие же графики...
2 ответа
Я согласен с @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()
Ваша проблема, кажется, в том, как вы используете 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))))
}
Хотя я не совсем уверен, что это желаемый результат, потому что лично я не вижу смысла размещать их на отдельных участках.
Дайте мне знать, если это было полезно!