来自 phyloseq 对象的 OTU table 无法强制转换为数据框

OTU table from phyloseq object can't be coerced into a data frame

我需要将我的 OTU table 从我的 phyloseq 对象转换成一个数据框,这样我就可以将它用于 运行 PICRUSt2,但是 as.data.frame(physeq@otu_table) 不会使它成为一个数据框。我尝试了 pie<-as.matrix(physeq@otu_table) 并且当我说 is.matrix(pie) #it says TRUE 时,但是当我说 class(pie) #it says [1] "otu_table" attr(,"package") [1] "phyloseq" 它甚至不会假装是数据框:

pie<-as.data.frame(physeq@otu_table)
is.data.frame(pie)
#FALSE

我不能只使用我在将它放入 phyloseq 对象之前的 asv_mat,因为我必须从我的 phyloseq 对象中移除线粒体和叶绿体。这仍然会在 asv_mat.

提前致谢

抱歉,我没有足够的信息来正确帮助您,但是您是否曾尝试使用 tidyverse 包中的 as_tibble() 而不是 as_dataframe() ?

pie<-as.matrix(physeq@otu_table)
pie<-as.data.frame(pie)

使其成为矩阵,然后保存为数据框并记住将原始矩阵保存为数据框(即 pie<-as.data.frame(pie) 而不仅仅是 as.data.frame(pie))。