我正在尝试创建一个函数,以使用PHYLOSEQ获得任何给定的taxrank的相对丰度的表,例如:
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)
}
所以当我像这样使用它时: 表格<-Relative_Table(PHYLO_Obj,Phylum) 它给我一个错误:
tax_glom(PhyloObj,taxrank =“ TaxonRank”)中的错误: 不好的taxrank论点。必须在rank_names(physeq)的值之中
尽管如此,当我在函数内部使用taxtax时,它仍然可以正常工作:
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)并生成一个表!!!!
谢谢
答案 0 :(得分:1)
没有可重复的示例很难说,但是我强烈怀疑问题是您将TRank
当作字符串而不是符号名。换句话说,请尝试在这两行中的"TRank"
周围加上引号:
GROUP <- tax_glom(PhyloObj, taxrank=TRank)
和
TAXglom <- tax_table(Percent)[,TRank]
您引用的错误听起来像是您在实际函数中使用TaxonRank
作为自变量名称,而您向我们展示的错误却使用了TRank
(这可能无关紧要,但这是对读者有些困惑)