如何让R函数返回正确类的对象(我可以做到但必须是更好的方法)

时间:2017-03-17 00:12:35

标签: r function

我正在编写我的第一个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)是这样做的方法。

0 个答案:

没有答案