如何重载S4插槽选择器@作为通用函数

时间:2018-09-12 14:03:23

标签: r generics s4 r-s3

我试图将R中的@运算符转换为S3系统的通用函数。

根据Writing R extensions: adding new generic中的章节,我尝试为@实现泛型,如下所示:

`@` <- function(object, name) UseMethod("@")
`@.default` <- function(object, name) base::`@`(object, name)

但是,这似乎不起作用,因为它破坏了S4方法的@。我使用Matrix包作为S4实例的示例:

Matrix::Matrix(1:4, nrow=2, ncol=2)@Dim
  

@.default(Matrix :: Matrix(1:4,nrow = 2,ncol = 2),Dim)中的错误:     该类“ dgeMatrix”的对象的名称为“ name”的插槽没有

如何实现泛型@,以便在S4类的情况下正确地进行调度?


编辑

还对为什么它不是一个好主意感兴趣吗?

0 个答案:

没有答案