为什么我的包函数找不到其他非导出标记函数?
Why doesn't my package function find other non-export tagged functions?
我读过 Hadley Wickham 的大部分好书:http://r-pkgs.had.co.nz/,但我很困惑为什么我的包中的函数找不到我的其他非导出函数。
例如我有
#' @export
#' @import ggmap
#' @import hexbin
map <- function(return.query, zoom, maptype, histObj) {
UseMethod("map")
}
#'
map.querySold <- function(query, zoom = 11, maptype = "roadmap") {
My Code
}
运行 在干净的环境下加载我的包会产生错误:
> map(x) # x is of class querySold
Error in UseMethod("map") :
no applicable method for 'map' applied to an object of class "c('querySold', 'data.frame')"
出了什么问题,我该如何解决?我认为内部函数总是对包中的所有其他函数可用?
直到我用 devtools::load_all(".")
加载所有函数,它才起作用。
我怀疑你没有 @export
map.querySold
。请尝试以下操作:
将 @export
放在第一个 map
函数之前。
#' @import ggmap
#' @import hexbin
#' @export
map <- function(return.query, zoom, maptype, histObj) {
UseMethod("map")
}
并在此处添加@export
#'@export
map.querySold <- function(query, zoom = 11, maptype = "roadmap") {
My Code
}
然后 运行 devtools::document()
并检查 NAMESPACE
文件。
如果这不起作用,它可能对 post 您的 NAMESPACE
有所帮助。我想你应该
S3method(map.querySold)
export(map)
我读过 Hadley Wickham 的大部分好书:http://r-pkgs.had.co.nz/,但我很困惑为什么我的包中的函数找不到我的其他非导出函数。
例如我有
#' @export
#' @import ggmap
#' @import hexbin
map <- function(return.query, zoom, maptype, histObj) {
UseMethod("map")
}
#'
map.querySold <- function(query, zoom = 11, maptype = "roadmap") {
My Code
}
运行 在干净的环境下加载我的包会产生错误:
> map(x) # x is of class querySold
Error in UseMethod("map") :
no applicable method for 'map' applied to an object of class "c('querySold', 'data.frame')"
出了什么问题,我该如何解决?我认为内部函数总是对包中的所有其他函数可用?
直到我用 devtools::load_all(".")
加载所有函数,它才起作用。
我怀疑你没有 @export
map.querySold
。请尝试以下操作:
将 @export
放在第一个 map
函数之前。
#' @import ggmap
#' @import hexbin
#' @export
map <- function(return.query, zoom, maptype, histObj) {
UseMethod("map")
}
并在此处添加@export
#'@export
map.querySold <- function(query, zoom = 11, maptype = "roadmap") {
My Code
}
然后 运行 devtools::document()
并检查 NAMESPACE
文件。
如果这不起作用,它可能对 post 您的 NAMESPACE
有所帮助。我想你应该
S3method(map.querySold)
export(map)