我有一个名为gene_table的R对象,它的类是foo。现在我通过以下方式对gene_table进行子集操作:
gene_data = gene_table[1:100,1:5]
然而,当调用class(gene_data)时,它不再属于类foo,而是属于类matrix。这让我很头痛,因为我的方法summary.foo无法识别矩阵类的gene_data对象。我希望在子集操作时保留原始的类属性,请问有什么方法可以做到吗?谢谢!
更新:dput(head(gene_table))给出了以下结果:
gene_data = gene_table[1:100,1:5]
然而,当调用class(gene_data)时,它不再属于类foo,而是属于类matrix。这让我很头痛,因为我的方法summary.foo无法识别矩阵类的gene_data对象。我希望在子集操作时保留原始的类属性,请问有什么方法可以做到吗?谢谢!
更新:dput(head(gene_table))给出了以下结果:
c(5.21708054951994, 5.01224214039806, 4.92160314073853, 4.83031021496, 4.78552614584879, 4.77821370665578)
并且 str(gene_table)
让我得到了
foo [1:22743, 1:2] 5.22 5.01 4.92 4.83 4.79 ...
- attr(*, "dimnames")=List of 2
..$ : chr [1:22743] "ENSG00000127954" "ENSG00000151503" "ENSG00000096060" "ENSG00000091879" ...
..$ : chr [1:2] "Var1" "Var2"
dput(head(gene_table))
的输出吗?我猜它实际上不是foo
类的,需要查看真正类的提取方法。 - IRTFMfoo
相对应的[
方法(就像你用summary
做的那样)。 - joranhead
将具有相同的效果,因为它对对象进行子集化。str
的输出显示gene_table
的类为“foo”。 - Joshua Ulrich?"["
:使用下标索引(除非为空)将删除所有属性,除了名称、维度和维度名称。 - James