我有一个数据集,看起来很像这个来自 diamonds 的数据集:
diamonds2 = subset(diamonds, cut!='Good' & cut!='Very Good', -c(table, x, y, z, clarity, depth, price))
我想制作一个像这样的箱线图:
ggplot(diamonds2, aes(x=color, y=carat, col=cut))+geom_boxplot()
难题来了。我的想法是按组(切割)和每列(颜色)对变量 y(克拉)的每个分布执行成对的 wilcox.test。
library(plyr)
ddply(diamonds2,"color",
function(x) {
w <- wilcox.test(carat~cut,data=diamonds2)
with(w,data.frame(statistic,p.value))
})
代码失败是因为要求 2 个级别(显然)。我可以在应用该函数之前制作一个子集(以删除其中一个“剪切”),但这并没有给我我想要的东西,也无法理解为什么。
此外,我想将结果绘制为我正在比较的两个分布之间的颜色星号。在第一个箱线图 (D) 中,我想绘制 3 个星号,一个紫色(红色和蓝色明显不同)、一个黄色和一个 cian。
关于星号颜色绘图我一直在使用 ggplot2 中的 geom_text 函数,但我不知道如何在 X 轴下方绘图或以不同颜色绘制文本。