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

时间:2015-06-19 18:09:51

标签: r generics s4 equality-operator

我想将==作为通用函数。

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

1 个答案:

答案 0 :(得分:0)

感谢MrFlick的回复:

事实证明==已经是通用的(在C中实现)。因此,您无需致电setGeneric

相反,您可以使用setMethod

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