计算几个类别的成对wilcox.test,并使用ggplot2在boxplot中绘制显着性

时间:2013-07-18 13:54:16

标签: r ggplot2 statistics plyr

我有一个看起来非常类似于钻石的数据集:

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轴下绘图或以不同颜色绘制文本。

0 个答案:

没有答案