我zoo
在自己的程序包中使用该类。我想设置一个泛型的类型zoo
:
setMethod(
"doWork",
signature = c("zoo"),
definition = function(x) {
# Do work...
})
但是,这给了我错误:
在签名为“ zoo”的“ dowork”方法中:没有对类“ zoo”的定义
我应该如何设置签名以使其参考zoo::zoo
?
这是因为zoo
软件包中的zoo类不是正式的S4类。为了将其与S4方法一起使用,可以使用将该setOldClass
函数设置为正式定义的类的函数。完成此操作后,您应该可以使用您希望使用的类了。使用以下文件(请注意使用roxygen2)启动一个新程序包(我称其为“ test” )。
方法
#' @import zoo
setOldClass("zoo")
setGeneric("doWork", function(x){
standardGeneric("doWork")
})
#' @export
setMethod(
"doWork",
signature = c("zoo"),
definition = function(x) {
print("IT WORKS!!!")
}
)
测试功能
library(test) # if not already loaded
library(zoo)
x.Date <- as.Date("2003-02-01") + c(1, 3, 7, 9, 14) - 1
x <- zoo(rnorm(5), x.Date)
doWork(x)
[1] "IT WORKS!!!"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句