Простым примером является то, что я создал расширение для show
, которое является базовым методом S4. Я не хочу вызывать виртуализацию, повторно документируя show
в своем пакете, а также хочу консолидировать документацию моего расширения до show
в документации для нового класса myPkgSpClass
, добавив псевдоним для show,myPkgSpClass-method
.
#' @export
#' @aliases show,myPkgSpClass-method
#' @rdname myPkgSpClass-class
setMethod("show", "myPkgSpClass", function(object){ show(NA) })
Проблема, с которой я столкнулась, заключается в том, что это приводит к серьезному предупреждению во время создания документации roxygen2, Rd files with duplicated alias 'show':
, потому что в этом пакете имеется более одного расширения класса show
, а roxygen2 автоматически добавляет общий термин в списке псевдонимов для всех соответствующих файлов *-class.Rd
:
\alias{show}
\alias{show,myPkgSpClass-method}
Но я думаю, что мне не нужен общий псевдоним в любом из экземпляров, потому что это заставит необходимость устранения значений между show
в моем пакете и базой show
. Эта проблема также относится к другим методам S4, расширенным из других пакетов, кроме show
.
Если я помечаю все методы класса для одного и того же файла .Rd
, то предупреждение уходит, но неопределенность остается, поскольку псевдоним show
по-прежнему автоматически добавляется для этой записи документа. Если я вручную удалю \alias{show}
из файла .Rd
, проблема будет решена, никаких предупреждений в roxygen или R CMD check pkgname
. Итак, как я могу заставить Roxygen2 не добавлять общий псевдоним?
Другой фон:
Это конкретный вопрос, связанный с предыдущей проблемой для экспорта/документирования расширений S4 в базовые методы: Нужно ли экспортировать расширения базового метода в R-пакет? Последствия для документации?
Более конкретным, чем и не охваченным, являются следующие вопросы, касающиеся документирования методов/классов S4 с использованием Roxygen2:
Как правильно документировать методы S4 с помощью roxygen2
Как правильно документировать слоты класса S4 с помощью Roxygen2?