【问题标题】:how to create a table as dunn.test output (R)?如何创建一个表作为 dunn.test 输出(R)?
【发布时间】:2015-04-22 01:13:03
【问题描述】:

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

> 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 ]

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

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)?

非常感谢!

莉迪亚

【问题讨论】:

    标签: r kruskal-wallis dunn.test


    【解决方案1】:

    这确实很旧,但我一直在寻找这个答案,并想我会发布以防其他人以后偶然发现这个问题。

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

    这里有一些示例代码:

    table = dunn.test(X, g, list=TRUE)
    table = cbind.data.frame(table$comparisons,table$Z,table$P.adjusted)
    table[order(table$`table$P.adjusted`),]
    

    【讨论】:

      【解决方案2】:

      请参阅dunn.test 包。在 Kruskal-Wallis 测试之后,Dunn 测试的表格输出有两种不同的选项。从 1.3.0 开始,该软件包还包括一个将多重比较输出为列表的选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-20
        • 2012-10-12
        • 1970-01-01
        • 2022-11-23
        • 2017-10-11
        • 1970-01-01
        • 2015-05-19
        • 1970-01-01
        相关资源
        最近更新 更多