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