首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pairwise.wilcox.test -重新格式化输出

pairwise.wilcox.test -重新格式化输出
EN

Stack Overflow用户
提问于 2011-10-24 03:17:12
回答 1查看 2.2K关注 0票数 4

这是测试的正常输出:

代码语言:javascript
复制
attach(airquality)
pw <- pairwise.wilcox.test(Ozone, Month, p.adj = "bonf")
pw

data:  Ozone and Month 

     May    Jun    Jul    Aug   
Jun 1.0000 -      -      -     
Jul 0.0003 0.1414 -      -     
Aug 0.0012 0.2591 1.0000 -     
Sep 1.0000 1.0000 0.0074 0.0325

最近,我不得不对一个因子进行了10个级别的测试。虽然pairwise.wilcox.test的下三角格式很有用且简洁,但我认为以类似于Tukey HSD输出的方式排列它会很方便,在这种输出中,每个成对的组合都会与其关联的p值一起列出。这是我尝试做的事情:

代码语言:javascript
复制
pw.df <- as.data.frame(pw$p.value)
pw.diff <- vector("character")
pw.pval <- vector("numeric")
for (i in 1:ncol(pw.df) )
  for (j in i:length(pw.df) ) {
    pw.diff <- c(pw.diff,paste(colnames(pw.df[i]),"-",rownames(pw.df)[j]))
    pw.pval <- c(pw.pval,pw.df[j,i])
  }


# order them by ascending p value
v <- order(pw.pval,decreasing = F)
pw.df <- data.frame(pw.diff[v],pw.pval[v])


# display those that are significant at the 5% level
pw.df[pw.df$pw.pval<0.05,]

  pw.diff.v.  pw.pval.v.
1  May - Jul 0.000299639
2  May - Aug 0.001208078
3  Jul - Sep 0.007442604
4  Aug - Sep 0.032479550

如果任何人有一些技巧/技巧/建议如何让这更容易和/或更优雅,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-24 04:25:46

我将使用reshapereshape2包来完成此任务,特别是melt()命令。pairwise.wilcox.test返回的对象在第三个槽中包含感兴趣的数据,因此类似于melt(pw[[3]])的代码应该可以完成此任务:

代码语言:javascript
复制
    X1  X2       value
1  Jun May 1.000000000
2  Jul May 0.000299639
3  Aug May 0.001208078
4  Sep May 1.000000000
5  Jun Jun          NA
....
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7868510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档