我正在写一个程序包,在其中创建一个类c("foo", "list")
(基本上是一个列表)的对象。我尝试添加自定义as.numeric()
方法:
#' @method as.numeric foo
#' @export
as.numeric.foo <- function(x, ...){
return(x$bar)
}
但是,当我执行as.numeric(foo)
时,它会出错:
Error: (list) object cannot be coerced to type 'double'
好像它使用as.numeric.list
而不是as.numeric.foo
。
当我运行methods("as.numeric")
时,as.numeric.foo*
已正确注册...
如何强制选择正确的方法?