我有一个看起来非常类似于钻石的数据集:
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个级别(显然)。我可以在应用函数之前创建一个子集(删除其中一个“cut”)但是它没有给我我想要的东西,也无法理解为什么。
此外,我想将结果绘制为我正在比较的两个分布之间颜色的星号。 在第一个箱图(D)中,我想绘制3个星号,紫色(红色和蓝色明显不同),黄色和cian。
关于星号颜色绘图我一直在使用ggplot2中的geom_text函数,但我无法弄清楚如何在X轴下绘图或以不同颜色绘制文本。