使`==`成为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) { .... })
我想使 ==
成为通用函数。
当我运行: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) { .... })