相关疑难解决方法(0)

Roxygen2 - 如何正确记录S3方法

我已经阅读了Roxygen2 PDF以及这个网站,我对@method @ S3method @export和你如何使用它们来正确记录S3方法之间的区别感到迷茫.我

编写了以下示例进行讨论:1.我如何正确记录这些内容?

2.我如何模拟?print和其他通用函数的文档,这些函数显示所有特定于类的实现的用例(即方式?print显示'factor','table','function'的用法)

3.来自wiki页面:"所有导出的方法都需要@ S3method标记.它的格式与@method相同.这会导出方法,而不是函数 - 即泛型(myobject)将起作用,但generic.mymethod(myobject)不会."
我无法解释这一点.这似乎说如果标签指定不正确,函数/方法调用将无法正常工作?具体会打破什么?

MyHappyFunction = function( x , ... )
{
    UseMethod( "MyHappyFunction" )
}

MyHappyFunction.lm = function( x , ... )
{
  # do some magic
}
Run Code Online (Sandbox Code Playgroud)

r roxygen roxygen2

45
推荐指数
2
解决办法
1万
查看次数

为什么我的包函数找不到其他非导出标记函数?

我读过 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
}
Run Code Online (Sandbox Code Playgroud)

在干净的环境中运行它并加载我的包会生成错误:

> 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')"
Run Code Online (Sandbox Code Playgroud)

出了什么问题,我该如何解决这个问题?我认为内部函数总是可供包内的所有其他函数使用?直到我加载所有函数后devtools::load_all(".")它才起作用。

r r-package

5
推荐指数
1
解决办法
1004
查看次数

标签 统计

r ×2

r-package ×1

roxygen ×1

roxygen2 ×1