В моем пакете я расширяю метод S3 as_bar
из пакета 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)
, мне пришлось реэкспортировать метод generi c (я скопировал синтаксис реэкспорта из dplyr magrittr
reexport ), поэтому R знать, что он должен вызывать метод:
#' @importFrom pcp_pack as_bar
#' @export
pcp_pack::as_bar
Это прекрасно работает, а as_bar
работает как с foo
объектами, так и с другими объектами.
Однако документация не совершенный, и выполнение library(foo_pack);?as_bar
дает два результата:
- человек
pcp_pack::as_bar
, без упоминания as_bar.foo
в использовании - человек
foo_pack::as_bar
, с as_bar.foo
в использовании, но больше ничего
Запуск library(pcp_pack)
заранее ничего не меняет.
Как мне получить унифицированную версию ?as_bar
со всеми использования из всех загруженных пакетов, в зависимости от того, какие они есть?
РЕДАКТИРОВАТЬ