0

我正在尝试创建一个函数,以使用 PHYLOSEQ 获取任何给定分类等级的相对丰富的表格,例如:

Relative_Table <- function (PhyloObj, TRank) {
    GROUP <- tax_glom(PhyloObj, taxrank="TRank")
    Percent <- transform_sample_counts(GROUP, function(x)100* x / sum(x))
    OTUglom <- otu_table(Percent)
    TAXglom <- tax_table(Percent)[,"TRank"]
    GroupTable <- merge(TAXglom, OTUglom, by=0, all=TRUE)
    GroupTable$Row.names = NULL
    return(GroupTable)
}

所以当我像这样使用它时: TABLE <- Relative_Table(PHYLO_Obj, Phylum) 它给了我一个错误:

tax_glom(PhyloObj, taxrank = "TaxonRank") 错误:taxrank 参数错误。必须在 rank_names(physeq) 的值之间

然而,当我在函数内部使用 taxrank 时,它运行良好:

Relative_Table <- function (PhyloObj) {
    GROUP <- tax_glom(PhyloObj, taxrank="Phylum")
    Percent <- transform_sample_counts(GROUP, function(x)100* x / sum(x))
    OTUglom <- otu_table(Percent)
    TAXglom <- tax_table(Percent)[,"Phylum"]
    GroupTable <- merge(TAXglom, OTUglom, by=0, all=TRUE)
    GroupTable$Row.names = NULL
    return(GroupTable)
}

第一个选项有什么问题??,我只想在函数中使用任何给定的taxrank(Phylum,Class....... Genus)并生成一个表!!!!

谢谢

4

1 回答 1

1

没有可重复的示例很难说,但我强烈怀疑问题在于您将TRank其视为字符串而不是符号名称。"TRank"换句话说,试着去掉这两行中的引号:

GROUP <- tax_glom(PhyloObj, taxrank=TRank)

TAXglom <- tax_table(Percent)[,TRank]

您引用的错误听起来像是您TaxonRank在实际函数中用作参数名称,而您向我们展示的错误名称TRank(这可能无关紧要,但这对读者来说有点混乱)

于 2019-11-02T14:10:21.667 回答