我想将==
作为通用函数。
当我运行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中成为通用的?
答案 0 :(得分:0)
感谢MrFlick的回复:
事实证明==
已经是通用的(在C中实现)。因此,您无需致电setGeneric
。
相反,您可以使用setMethod
。
setMethod("==",
c(e1="Class1",e2="Class2"),
funciton(e1,e2) { .... })