创建 RPackage - UseMethod 找不到函数

unc*_*ool 6 r

我正在尝试创建 R 包的第一次尝试。我有下面的一些功能。

#' @export
overview  <- function(x, ...) {
  UseMethod("overview")
} 

overview.query <- function(return.query, ...) {
Run Code Online (Sandbox Code Playgroud)

现在,当我使用devtools::load_all()(加载所有函数)时,一切正常,并overview.query在我传递class query.

但是重建,并且UseMethod无法再找到该overview.query功能(因此未加载所有功能),我做错了什么?

错误消息:没有适用于 'overview' 的方法应用于类“c('query', 'data.frame')”的对象

我认为只有向用户公开的@export函数才会被'ed,所有其他函数仍然对其他包函数在内部可见。

C8H*_*4O2 5

当您创建应用于 S3 对象的通用函数时,您需要导出语句UseMethod和函数本身,如下所示:

#' @export
overview  <- function(x, ...) {
  UseMethod("overview")
} 
#' @export  
overview.query <- function(return.query, ...) {
Run Code Online (Sandbox Code Playgroud)

这应该可以消除错误,因为该方法现在可供用户使用。

这适用于roxygen2版本 3+(当前版本为 5)。请参阅此答案以获取更多信息:

如何正确记录 S3 方法