【发布时间】:2013-03-22 08:07:53
【问题描述】:
我想知道是否有任何方法可以覆盖 R 包中的任何运算符方法。
包中源码示例:
setclass("clsTest", representation(a="numeric", b="numeric"))
setMethod("+", signature(x1 = "numeric", x2 = "clsTest"),
definition=function(x1, x2) {
Test = x2
Test@a = Test@a+x1
Test@b = Test@b+x1
Test
})
我想覆盖现有包中的方法,用
setMethod("+", signature(x1 = "numeric", x2 = "clsTest"),
definition=function(x1, x2) {
Test = x2
Test@a = Test@a+(2*x1)
Test@b = Test@b+(2*x1)
Test
})
我使用的是 R 2.15.2,有什么方法可以覆盖它吗?
【问题讨论】:
-
我认为,由于该方法未密封,您可以使用
setmethod重新定义它。那么问题出在哪里? -
问题是我用[code]setMethod[/code]重新定义后,就不能再使用这个方法了
-
我正在考虑使用一些额外的命令覆盖包上的方法
-
您需要向我们展示“无法使用”的含义,即导致什么样的失败或错误消息。