【问题标题】:Error in betadisper(dissimilarity_matrix ~ Group) : distances 'd' must be a 'dist' objectbetadisper(dissimilarity_matrix ~ Group)中的错误:距离“d”必须是“dist”对象
【发布时间】:2019-05-28 12:04:32
【问题描述】:

当我尝试对我的相异矩阵进行 betadisper 时,我得到了标题中的错误。在查看我的环境时,它清楚地显示“dist”。

as.dist() 没有帮助

#fhf is a phyloseq object

veganotu = function(physeq) {
    require("vegan")
    OTU = otu_table(physeq)
    if (taxa_are_rows(OTU)) {
        OTU = t(OTU)
    }
    return(as(OTU, "matrix"))
}

Group <- sample_names(fhf)
dissimilarity_matrix <- vegdist(veganotu(fhf), method="bray")
homogen <- betadisper(dissimilarity_matrix ~ Group)
anova(homogen)

我希望得到与此类似的结果,但具有其他值:

方差表分析

响应:距离 Df Sum Sq Mean Sq F 值 Pr(>F) 组 5 0.021037 0.0042074 1.5524 0.252 残差 11 0.029813 0.0027103

错误信息:

betadisper(dissimilarity_matrix ~ Group) 中的错误: 距离 'd' 必须是一个 'dist' 对象

【问题讨论】:

    标签: vegan phyloseq


    【解决方案1】:

    betadisper 不接受公式。你必须写betadisper(dissimilarity_matrix, Group)。

    【讨论】:

    • 问题出在“代理”包上。卸载它使它工作。 ~ 有效。
    • ~ 不起作用。这是肯定的,因为函数是这样编写的,~ 不起作用。该函数检查第一个参数是否为"dist" 对象,即使d 是"dist" 对象,d ~ Group 也不是。
    • 奇怪的是它在没有警告或错误的情况下工作。
    猜你喜欢
    • 2018-02-23
    • 1970-01-01
    • 2017-11-20
    • 2021-07-01
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 1970-01-01
    相关资源
    最近更新 更多