首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建一个表格作为dunn.test输出(R)?

如何创建一个表格作为dunn.test输出(R)?
EN

Stack Overflow用户
提问于 2015-02-20 19:12:08
回答 2查看 3.1K关注 0票数 4

我正在处理细菌焦磷酸测序数据,我正在与R一起进行统计分析。我有21个样本和7种不同的治疗方法。我将我的数据加载到R phyloseq中,获得:

代码语言:javascript
复制
> psR
phyloseq-class experiment-level object
otu_table()   OTU Table:         [ 7498 taxa and 21 samples ]
sample_data() Sample Data:       [ 21 samples by 8 sample variables ]
tax_table()   Taxonomy Table:    [ 7498 taxa by 6 taxonomic ranks ]
phy_tree()    Phylogenetic Tree: [ 7498 tips and 7497 internal nodes ]

由于我发现处理之间存在统计学上的显著差异(使用adonis函数),我想知道哪些OTU在不同的处理中具有不同的丰度。为此,我使用了函数dunn.test (合并了Kruskal-Wallis测试),首先交换OTU表中的行和列,以便应用测试:

代码语言:javascript
复制
swap_otu_table <- t(otu_table(psR))
treatment <- c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'D', 'D', 'D', 'E', 'E', 'E', 'F', 'F', 'F', 'G', 'G', 'G')
swap_otu_tableDF <- as.data.frame(swap_otu_table)
ncol(swap_otu_tableDF)
[1] 7498
lapply(swap_otu_tableDF[1:7498], function(x) kruskal.test(x ~ treatment,   data=swap_otu_tableDF))

这个递归函数的输出很难读懂,特别是对于所有7498个OTU。

有没有办法以递归的方式应用Kruskal-Wallis +Dunn检验,给出一个表作为输出,最好是按照重要性的顺序,并且不仅包含OTU码,还包含tax_table(psR)中包含的分类标识?

非常感谢!

Lidia

EN

回答 2

Stack Overflow用户

发布于 2016-12-01 22:27:13

这真的很古老,但我正在寻找这个答案,并认为我应该张贴,以防其他人在以后偶然发现这个问题。

dunn.test有一个内置选项,可以将输出作为列表。这就是您真正需要的,因为您可以将其转换为data.frame并按列排序。

以下是执行此操作的一些示例代码:

代码语言:javascript
复制
table = dunn.test(X, g, list=TRUE)
table = cbind.data.frame(table$comparisons,table$Z,table$P.adjusted)
table[order(table$`table$P.adjusted`),]
票数 4
EN

Stack Overflow用户

发布于 2015-09-25 02:06:40

请参阅包。在Kruskal-Wallis测试之后,它有两个不同的选项用于Dunn测试的表格输出。从1.3.0开始,该包还包括将多个比较输出为列表的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28627603

复制
相关文章

相似问题

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