我正在编写我的第一个R函数tax_glom.named()。简而言之,我希望它返回与输入相同类的对象,但是如果没有笨拙地将变量赋给自身(phy.glom <- phy.glom
)似乎无法做到这一点,并且必须有更好的方法。
phy
是来自phyloseq包的phyloseq对象
tax.rank
是一个分类等级,如“Phylum”
函数tax_glom()和tax_table()位于phyloseq包中。
tax_glom.named <- function(phy, tax.rank) {
phy.glom <- tax_glom(phy, tax.rank)
names <- as.data.frame(tax_table(phy))[taxa_names(phy.glom),tax.rank]
taxa_names(phy.glom) <- names
phy.glom <- phy.glom
}
目标是返回类phyloseq的对象。它按原样正常工作。
> temp <- tax_glom.named(gi.16S.r4750, "Phylum")
> class(temp)
[1] "phyloseq"
attr(,"package")
[1] "phyloseq"
但如果我使用相同的函数但摆脱最后一行phy.glom <- phy.glom
,则返回的对象是一个因子而不是phyloseq。
我知道代码可能非常不透明,但是我希望这个问题在不知道步骤的细节的情况下是可以回答的:行phy.glom <- phy.glom
是正确的方法,还是有更好的方法?
已解决:return(phy.glom)
是这样做的方法。