0

我想做==一个通用功能。

当我运行:setGeneric("==")时,定义似乎没有改变:

> `==`
function (e1, e2)  .Primitive("==")
> setGeneric("==")
[1] "=="
> `==`
function (e1, e2)  .Primitive("==")

当我打电话时setgeneric("`==`"),我收到以下错误:

> setGeneric("`==`")
Error in setGeneric("`==`") : 
  must supply a function skeleton for ‘`==`’, explicitly or via an existing function

我可以定义==函数:

`==` <- function(x,y) 42;

然后我可以使用setGeneric它。但后来我不得不把原件的主体放在==那里,这看起来很笨重。

那么有什么方法==可以在 S4 中通用吗?

4

1 回答 1

0

感谢 MrFlick 的回复:

事实证明这==已经是通用的(在 C 中实现)。所以你不需要打电话setGeneric

相反,您可以只使用setMethod.

setMethod("==",
          c(e1="Class1",e2="Class2"),
          funciton(e1,e2) { .... })
于 2015-06-23T15:04:18.283 回答