我有一个名为gene_table的R对象,它有类foo
。现在我通过
gene_data = gene_table[1:100,1:5]
但是,当我致电class(gene_data)
时,它已不再是foo
类,而是有matrix
类。这对我来说很头疼,因为我的方法summary.foo
无法识别类矩阵的这个对象gene_data。我希望在子集化时保留原始的class属性,所以有人能告诉我怎么做吗?谢谢!
更新: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"
答案 0 :(得分:5)
您可以使用类似这样的内容作为[.foo
的定义:
`[.foo` <- function(x, ..., drop=TRUE) {
structure(NextMethod(), class="foo")
}
您可能需要添加其他内容,具体取决于"foo"
类的复杂程度。