我想%*%为基本矩阵子类编写一个方法。我的子类是一个 S3 类,并且 的文档help("%*%")说它是一个 S4 泛型,并且需要为名为和%*%的两个参数的函数编写 S4 方法。在使用之前,我已经为 S4 泛型方法编写了 S3 类的方法,并且我查看了包的源代码以获取灵感,但由于某种原因,我无法完全让它在这种情况下工作。 显示我的方法存在于我的目标签名中,但当我尝试使用它时,我的方法似乎从未真正被 R 调用。xymethods::setOldClass()methods::setMethod(){Matrix}methods::showMethods()
x <- diag(3)
class(x) <- c("atm2d", class(matrix()))
print(x)
Run Code Online (Sandbox Code Playgroud)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
attr(,"class")
[1] "atm2d" "matrix" "array"
Run Code Online (Sandbox Code Playgroud)
默认情况%*%下会删除我的类属性,我想保留它。
print(x %*% x)
Run Code Online (Sandbox Code Playgroud)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
Run Code Online (Sandbox Code Playgroud)
我尝试%*%为我的类创建一个方法,该方法不会删除我的类属性:
as.matrix.atm2d …Run Code Online (Sandbox Code Playgroud)