创建RPackage - UseMethod无法找到功能

时间:2015-08-13 12:55:29

标签: r

我正在尝试创建一个R包。我有一些功能如下。

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

overview.query <- function(return.query, ...) {

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

但是重建,UseMethod再也找不到overview.query函数了(因此没有加载所有函数),我做错了什么?

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

我认为只有要向用户公开的函数才能被@export编辑,并且所有其他函数仍然在其他包函数内部可见。

1 个答案:

答案 0 :(得分:0)

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

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

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

这适用于roxygen2版本3+(目前在5)。有关详细信息,请参阅此答案:

How to properly document S3 methods