@ Усман - надеюсь, это будет полезно. Если вы используете as.factor
для своей переменной groupss
, вы должны получить 6 коробок по желанию:
library(reshape2)
library(ggplot2)
dat.m <- melt(df, id.vars='groupss', measure.vars=c('food1','food2','food3'))
p <- ggplot(dat.m, aes(x=as.factor(groupss), y=value, color=variable)) +
geom_boxplot()
p
Как указано выше, вы можете изменить свой столбец groupss
на сам коэффициент следующим образом:
dat.m$groupss <- as.factor(dat.m$groupss)
Вместо reshape2
я использую последний tidyr
, который имеет pivot_longer
альтернативу melt
. Это могло бы выполнить то же самое:
library(tidyr)
dat.m2 <- df %>%
pivot_longer(cols = starts_with("food"), names_to = "food", values_to = "value")
p <- ggplot(dat.m2, aes(x=as.factor(groupss), y=value, color=food)) +
geom_boxplot()
p
Редактировать : если вы хотите, чтобы на оси х были еда1, еда2 и еда3, и для каждого из этих 3, по 2Для боксов для групп 1 и 2 вы можете сделать следующее:
p <- ggplot(dat.m, aes(x=variable, y=value, color=as.factor(groupss))) +
geom_boxplot()
или для pivot_longer
версии:
p <- ggplot(dat.m2, aes(x=food, y=value, color=as.factor(groupss))) +
geom_boxplot()