Как отформатировать справочный документ в Rmarkdown - PullRequest
0 голосов
/ 21 февраля 2019

Мне нужно написать некоторую документацию для функций, которые я создал, и я хотел бы подражать стилю из документации R Help.Мой документ будет в формате PDF, так как загружаемые виньетки для пакетов R.Точнее говоря, я хочу создать вывод, такой как прикрепленный отрывок из dplyr документации ниже: enter image description here

Может кто-нибудь знать, как это делается?Это таблица без границ в Latex или просто настройка положения текста?Как лучше всего имитировать это в Rmarkdown?

1 Ответ

0 голосов
/ 21 февраля 2019

Как я уже упоминал в комментариях, я считаю, что лучшее решение здесь - просто поместить ваш код в пакет.Вы кажетесь нерешительным или запуганным этим заданием, но это действительно настолько просто, насколько это возможно, что я кратко продемонстрирую для вас.

Предположим, у вас есть функция

example_function <- function(x) {
    return(x * 2)
}

, которую вы хотите/ нужно распространять, желательно с какой-то документацией.Вот как вы можете сделать это в пакете R относительно безболезненно.Мы добавим комментарии к документации в стиле Roxygen:

#' Example function
#'
#' This is just an example function that multiplies its argument by two.
#'
#' @param x A numeric vector
#'
#' @return A numeric vector equal to \\code{x} multiplied by two.
#' @export
example_function <- function(x) {
    return(x * 2)
}

Затем мы позволим devtools сделать для нас часть тяжелой работы.Сначала мы используем его для настройки необходимой структуры пакета:

pkg_path <- "/tmp/examplePackage" # Wherever you want your package to be on your machine
devtools::create(pkg_path, rstudio = FALSE)

Затем мы помещаем файл с нашей вышеописанной функцией в подкаталог R/ папки пакета devtools, созданной для нас (в моемЕсли код теперь находится в файле /tmp/examplePackage/R/example_function.R.

Тогда мы можем просто запустить команду

devtools::document(pkg_path)
# Updating examplePackage documentation
# Loading examplePackage
# Writing NAMESPACE
# Writing example_function.Rd

И devtools + roxygen2 позаботитсявсей магии документации для нас. Теперь вы можете devtools::install() сделать файлы справки доступными для R:

devtools::install(pkg_path)
?examplePackage::example_function

enter image description here

или build_manualчтобы создать красивое руководство в формате PDF, которое вы упомянули:

devtools::build_manual(pkg_path)
# Hmm ... looks like a package
# Creating pdf output from LaTeX ...
# Saving output to ‘/tmp/examplePackage_0.0.0.9000.pdf’ ...
# Done

enter image description here

...