我需要在R中为类似矩阵的类实现哪些方法?

时间:2014-07-21 18:06:56

标签: r oop matrix interface

我在R中设计了一个与二维矩阵有很多相同行为的类:它可以按行或列进行子集化,它有dimnames等等。所以我希望它支持所有“标准“矩阵运算,例如rownames[等。但我不确定所有这些方法名称是什么,我不确定我需要实现哪些方法。例如,我是否需要明确实施rownamesrownames<-,或者是否足以实施dimnamesdimanmes<-?基本上,是否有一个列表中的所有函数,一个类必须实现一个类似二维矩阵的东西?

1 个答案:

答案 0 :(得分:0)

你能扩展matrix课吗?您可以添加一堆其他东西,而不会妨碍现有方法。这比重写所有基础要容易得多。

对于泛型,你可以做

> methods(class = "matrix")
 [1] anyDuplicated.matrix as.data.frame.matrix as.raster.matrix*   
 [4] boxplot.matrix       determinant.matrix   duplicated.matrix   
 [7] edit.matrix*         head.matrix          isSymmetric.matrix  
[10] relist.matrix*       subset.matrix        summary.matrix      
[13] tail.matrix          unique.matrix 

对于类似rownames的内容,帮助指定它适用于&#34;类似矩阵的对象&#34;,因此根据 类的不同,它可能只是工作。您可以查看代码以查看工作原理,在rownames的情况下,如果您定义dimnames并且NROW可能会很好。坏消息是,因为它适用于类似矩阵的对象&#34;它不是一个矩阵类的方法,而是你很难找到其他类似函数的列表。