【发布时间】:2015-08-13 12:55:28
【问题描述】:
我第一次尝试创建 R 包。我有一些函数如下。
#' @export
overview <- function(x, ...) {
UseMethod("overview")
}
overview.query <- function(return.query, ...) {
现在,当我使用devtools::load_all()(它加载所有函数)时,一切正常,当我传递class query 的对象时,overview.query 被执行。
但是重建,UseMethod 再也找不到overview.query 函数(所有函数都没有加载),我做错了什么?
错误信息:没有适用于“c('query', 'data.frame')”类对象的“overview”方法
我认为只有要向用户公开的函数才能被@export'ed,所有其他函数在其他包函数内部仍然可见。
【问题讨论】:
-
为了记录,我在故意使用未导出的 S3 泛型和方法时遇到了这个版本。当我将 S3 方法传递给
lapply()时,它与devtools::load_all("drake")一起工作,但不适用于library(drake)。解决方案:嵌套在另一个函数中。 github.com/ropensci/drake/commit/….
标签: r