问题描述
编辑:下面的所有内容都经过了严格的编辑,因为正如@ user2554330和@MrFlick指出的那样,由于我最初提供的伪代码无法重现我的问题,所以。
我有一个函数foo()
,该函数创建类foo
的对象。它与plot()
泛型方法一起记录。
#' Create a foo object
#'
#' @param x A numeric vector.
#'
#' @return
#' A foo object.
#'
#' @examples
#' foo_object <- foo(1:10)
#' plot.foo(foo_object)
#'
#' @export
foo <- function(x) {
structure(x,class = c("foo","numeric"))
}
#' Methods for class foo
#'
#' @param x A foo object.
#' @param ... Unused optional arguments.
#'
#' @name foo-methods
NULL
#' @rdname foo-methods
#' @export
#' @importFrom graphics plot
plot.foo <- function(x,...) {
class(x) <- setdiff(class(x),"foo")
plot(x)
invisible(NULL)
}
该示例在加载了包的R会话中运行没有问题,但是devtools::check()
仍然抱怨:
Error in plot.foo(foo_out) : could not find function "plot.foo"
Execution halted
似乎知道plot.foo()
存在,但不知道其定义。发生了什么事?
编辑:将devtools::check()
中的plot.foo(foo_object)
替换为@examples
后,plot(foo_object)
运行没有错误。一切都很好,因为用户无论如何都应该调用泛型,但是问题仍然存在:鉴于该方法已导出并且S3method(plot,foo)
出现在NAMESPACE
中,为什么找不到该方法?>
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)