我已经阅读了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文件.
如果这不起作用,发布您的NAMESPACE可能会有所帮助.我在想你应该有的
S3method(map.querySold)
export(map)