我正在尝试创建一个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
编辑,并且所有其他函数仍然在其他包函数内部可见。
答案 0 :(得分:0)
创建应用于S3对象的通用函数时,需要导出UseMethod
语句和函数本身,如:
#' @export
overview <- function(x, ...) {
UseMethod("overview")
}
#' @export
overview.query <- function(return.query, ...) {
应该消除错误,因为该方法现在可供用户使用。
这适用于roxygen2
版本3+(目前在5)。有关详细信息,请参阅此答案: