Я пытаюсь создать класс S4 с помощью собственного метода инициализации и отдельно документировать их с помощью Roxygen2. Предполагая, что мой класс определяется как:Есть ли способ документировать класс S4 и его конструктор отдельно с помощью Roxygen2
#' This is the classA
#' @name classA-class
#' @rdname classA-class
######## @aliases NULL
#' @exportClass classA
classA <- setClass(Class = "classA", slots = list(member = "ANY"))
С помощью метода инициализации:
#' This is the constructor
#' @name classA
#' @rdname classA
#' @export classA
setMethod("initialize", "classA", function(.Object, x) {
[email protected] = x
return(.Object)
})
После компиляции пакета с Roxygen2. Я получил 2 .Rd файлы с 3 странице справки:
- CLASSA-класс: Это CLASSA
- CLASSA: Это CLASSA
- CLASSA: Это конструктор
Оба class?classA
и ?classA
покажет classA-class
справочную страницу. Это, безусловно, то, что я хочу, как я надеюсь, class?classA
приведет к classA-class: This is the classA
, а ?classA
приведет к classA: This is the constructor
.
Итак, мой вопрос заключается в том, как отделить документацию по документации к классу и конструкторскую документацию с Roxygen2? Большое вам спасибо за вашу помощь.
(Я понимаю, что Roxygen2 поставит псевдонимы с именем класса для класса S4 по умолчанию. Но когда я установил@aliases NULL
, помощи страницеclassA-class: This is the classA
избавится !! остался толькоclassA: This is the constructor
)
Большое вам спасибо за полезную информацию, Кен. На самом деле класс S4, который я пытаюсь построить, содержит 10 разных слотов, и я уже даю им значения по умолчанию с «прототипом». Проблема в том, что мой метод инициализации представляет собой немного сложную функцию, которая имеет сотни строк ...Поэтому я пытаюсь их разделить. В любом случае, как вы сказали, может быть лучше объединить страницу справки для метода инициализации и класса S4 вместе или дать другое имя конструктору. –