我想可视化与ggplot2中的箱形图的均值比较,但是除了具有分类变量的向量外,我还有几个具有1或0的向量来指示它们是否属于该类别。有一些重叠-即,某些数据点将同时属于多个组。
我能够获得一组中所有值的箱形图,但无法将另一组中的值添加到同一图中。通过将as.factor()应用于虚拟变量,我能够获得该组与非该组中那些的均值得分的箱形图。我看过有关刻面的帖子可能会有所帮助,但我没有找到任何示例(针对ggplot中的不同列值并排放置多个箱形图,如何在R中使用两个分类变量制作箱形图?)很像我想做的事。
score <- c(1, 8, 3, 5, 10, 7, 4, 3, 8, 1)
group1 <- c(0, 0, 1, 0, 1, 1, 0, 1, 0, 1)
group2 <- c(1, 1, 0, 1, 0, 1, 1, 1, 0, 0)
group3 <- c(0, 1, 0, 0, 0, 0, 0, 0, 1, 1)
df <- data.frame(score, group1, group2, group3)
library(ggplot2)
ggplot(aes(y=score, x=as.factor(group1), fill=group1), data=df) +
geom_boxplot() #mean for both values inside and outside group plotted
ggplot(aes(y=score, x=as.numeric(group1), fill=group1), data=df) +
geom_boxplot() #mean for just those values where group1 == 1
我想以a)多个图作为我从第一行代码得到的结果,或者b)多个图作为我从第二行得到的结果来结束。前者包括一个针对组外所有值的箱线图,后者则没有。对于总体均值有一个箱线图也很酷,但是我真的不确定什么可行。
我不太确定您是否只希望使用dummy =的箱形图1
。无论如何,这data.table::melt
可能对您很有用,这使您可以轻松绘制长格式图表。
library(data.table)
dat.m <- melt(dat, measure.vars=2:4)
boxplot(score ~ value + variable, dat.m[dat.m$value == 1, ])
产量
数据
dat <- structure(list(score = c(1, 8, 3, 5, 10, 7, 4, 3, 8, 1), group1 = c(0,
0, 1, 0, 1, 1, 0, 1, 0, 1), group2 = c(1, 1, 0, 1, 0, 1, 1, 1,
0, 0), group3 = c(0, 1, 0, 0, 0, 0, 0, 0, 1, 1)), class = "data.frame", row.names = c(NA,
-10L))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句