8

我有一个名为gene_table 的R 对象,它有class foo。现在我将这个gene_table子集

gene_data = gene_table[1:100,1:5]

但是,当我调用时class(gene_data),它不再属于 class foo,而是具有 class 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"
4

1 回答 1

5

你可以使用这样的东西作为你的定义[.foo

`[.foo` <- function(x, ..., drop=TRUE) {
   structure(NextMethod(), class="foo")
}

您可能需要添加其他内容,具体取决于您的"foo"课程的复杂性。

于 2012-09-26T21:19:34.433 回答