0

我有一个数据集,看起来很像这个来自 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 轴下方绘图或以不同颜色绘制文本。

4

0 回答 0