Я пишу пакет R, который организован в модули согласно Себастьяну Пакет модулей Warnholz .Каждая функция организована в свой собственный R-файл, например, R/m1/fun.R
.Каждый из этих файлов начинается с кода roxygen.Модули определены в другом файле, R/modules.R
.Вот идея того, как этот файл структурирован:
#' Module 1
#' @name m1
#' @export
m1 <- modules::module({
expose("R/m1/fun.R")
expose("R/m1/foo.R")
})
Пакет проверяет и собирает чисто, и я могу вызывать функции, выпуская m1$fun()
и m1$foo()
.Однако вызов файлов справки не работает, независимо от того, что я пытаюсь (например, комбинации ?
или help()
с именами функций, с префиксом модуля или без него m1$
.
На самом делеЯ даже не могу ожидать, что файлы справки будут там, потому что после запуска devtools::document()
код roxygen не преобразуется в файлы man/*.Rd
, поэтому я предполагаю, что моя проблема заключается в поиске devtools::document()
в подпапках R
Однако запуск devtools::document("R/m1")
не помогает.
Единственное, что работает, - это помещает скрипты функций в родительскую папку R/
, но тогда они теряют область видимости модуля и файлы справки (но не сами функции) можно увидеть на уровне пакета.Кроме того, в разделе «использование» будет указано «foo (...)» вместо «m1 $ foo (...)», что звучит неадекватно, но я неКонечно, это исправимо. Это мой первый раз, когда я работаю с модулями, поэтому мне было интересно, есть ли более чистый способ организации моих функций и файлов помощи.