假设我有一个名为的S4类testClass
。内容与该问题的目的无关,但让我们使其包含数字值。
#' An S4 class that stores a list.
#' @export
setClass("testClass",
representation(a="numeric"))
我想定义一个方法,该方法的工作方式与采取对象的相反方法相同。例如:
vec <- rnorm(10)
-vec
我认为这将是声明Arith
缺少第一个参数的方法。
#' @export
setMethod("Arith", c(e1="missing", e2="testClass"),
function(e1, e2)
{
op = .Generic[[1]]
switch(op,
`-` = return(-e2@a)
)
}
)
但是,当我尝试应用该方法时,出现以下错误:
tc <- new("testClass", a=2)
-tc
-tc中的错误:一元运算符的参数无效
哈哈!摆弄一些东西之后,我发现它是e2
需要丢失的参数。以下作品:
#' @export
setMethod("Arith", c(e1="testClass", e2="missing"),
function(e1, e2)
{
op = .Generic[[1]]
switch(op,
`-` = return(-e1@a)
)
}
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句