如何在Rmarkdown中格式化类似于帮助的文档

时间:2019-02-21 10:35:52

标签: r latex r-markdown

我需要为我创建的功能写一些文档,并且我想模仿R帮助文档中的样式。我的文档将以PDF格式,以及R软件包的可下载小插曲。确切地说,我想从下面的dplyr文档创建一个输出,如附件摘录: enter image description here

有人知道它是怎么做的吗?它是在Latex中没有边框的表格,还是只是进行一些文本位置调整的表格?在Rmarkdown中模仿它的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

正如我在评论中提到的那样,我相信这里最好的解决方案是将您的代码实际上放在一个程序包中。您似乎对该任务感到犹豫或恐吓,但这确实非常容易,我将为您简要介绍一下。

假设您具有功能

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/的{​​{1}}子目录中(在我的情况下,代码位于文件devtools中)。

然后我们可以简单地运行命令

/tmp/examplePackage/R/example_function.R

devtools::document(pkg_path) # Updating examplePackage documentation # Loading examplePackage # Writing NAMESPACE # Writing example_function.Rd + roxygen2为我们处理了所有文档魔术。现在,您可以devtools将帮助文件提供给R了:

devtools::install()

enter image description here

devtools::install(pkg_path) ?examplePackage::example_function 创建您提到的精美PDF手册:

build_manual

enter image description here