在我的包中,我as_bar
从包中扩展了一个 S3 方法pcp_pack
,应用于foo
我的包中的一个对象foo_pack
。
ROxygen2 文档如下:
#' Implementation of as_bar for foo objects
#'
#' @param x same as foo_pack::as_bar
#' @param y new argument
#' @param z also new argument
#' @param ... unused, for S3 compatibility
#'
#' @name as_bar
#' @rdname as_bar
#' @export
#'
#' @examples
as_bar.foo = function(x, y, z, ...){
#...
}
但是,这个功能是相当独立的,它可以在没有原始包的情况下工作。但是为了让函数在不必运行的情况下工作library(pcp_pack)
,我必须重新导出通用方法(我从dplyr reexportmagrittr
复制了重新导出的语法),所以 R 知道它应该调用一个方法:
#' @importFrom pcp_pack as_bar
#' @export
pcp_pack::as_bar
这完美地工作,并且as_bar
适用于foo
对象以及其他对象。
但是,文档并不完美,运行library(foo_pack);?as_bar
会给出两个结果:
- man of ,用法中
pcp_pack::as_bar
未提及as_bar.foo
- man of
foo_pack::as_bar
, withas_bar.foo
in the usage 但没有别的
提前运行library(pcp_pack)
不会改变任何事情。
我怎样才能得到一个统一的版本?as_bar
,所有加载的包的所有用法,无论它们是什么?
编辑
相关但有点不同且未回答:在 R 中记录通用 S3 方法以便用户可以查看文档?
如果你想要一些上下文,我的包是交叉表的,我想
as_flextable.crosstable
从flextable::as_flextable
.