使`==`成为R中的通用函数

Make `==` a generic funciton in R

我想使 == 成为通用函数。

当我运行: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 中成为通用的?

感谢 MrFlick 的回复:

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

相反,您可以只使用 setMethod

setMethod("==",
          c(e1="Class1",e2="Class2"),
          funciton(e1,e2) { .... })