如何在 r 包中包含 RMarkdown 文件?
How to include RMarkdown file in r package?
我正在用 R 创建一个包,我还想包含一个 R Markdown 文件。这个 RMarkdown 模板包含我的包中的函数,并通过 knitr 呈现为 html 文档。
目标是定期 运行 呈现 RMarkdown 文件的函数(通过 cronjob)以生成每周报告。
如何将此类文件添加到 R 包(如 .Rmd)并在调用函数以呈现所述模板时引用 .Rmd,特别是因为使用 use_data(myrmarkdown.Rmd)
无法实现想要的结果。
当您创建 R 包时,您将在包的根目录中有一个目录树,其中包含以下内容(以及其他内容):DESCRIPTION
, NAMESPACE
,以及 R/
目录。如果您还有一个 inst/
目录,那么该目录中的所有内容都会被逐字复制到您的包目录中,不包括 inst/
.
例如,如果您的包目录如下所示:
+- DESCRIPTION
+- NAMESPACE
+- inst/
| \- rmd/
| \- file.Rmd
\- R/
+- file1.R
+- file2.R
\- file3.R
然后当您构建包并安装它时,您会在包库中找到以下内容:
+- DESCRIPTION
+- INDEX
+- NAMESPACE
+- rmd/
| \- file.Rmd
\- R/
+- packagename
+- packagename.rdb
\- packagename.rdx
(其他 files/directories 是在此过程中创建的,为简单起见,我将忽略它们。)
你需要知道的最后一条信息是"how do I access this file once it is installed?"由于一些系统将R库安装在不同的目录中,并且用户经常在其之上安装包在个人 R 库中,您无法先验地知道去哪里查找 输入 system.file
:
system.file("rmd", "file.Rmd", package = "packagename")
## [1] "c:/R/R-3.1.3/library/packagename/rmd/file.Rmd"
这可以用于整个 Rmd 文件。我将它用于 Rmd-rendered 文档的 company-specific 模板。也就是说,我寻找 "include" 文件来个性化 LaTeX,以便呈现的 PDF 具有 headers/footers 并且按照我们想要的方式设置样式。此步骤需要编写一个函数来替换 Rmd YAML header 中的 pdf_document
(例如),但在 rmarkdown.rstudio.com.
中对此进行了很好的介绍
我正在用 R 创建一个包,我还想包含一个 R Markdown 文件。这个 RMarkdown 模板包含我的包中的函数,并通过 knitr 呈现为 html 文档。
目标是定期 运行 呈现 RMarkdown 文件的函数(通过 cronjob)以生成每周报告。
如何将此类文件添加到 R 包(如 .Rmd)并在调用函数以呈现所述模板时引用 .Rmd,特别是因为使用 use_data(myrmarkdown.Rmd)
无法实现想要的结果。
当您创建 R 包时,您将在包的根目录中有一个目录树,其中包含以下内容(以及其他内容):DESCRIPTION
, NAMESPACE
,以及 R/
目录。如果您还有一个 inst/
目录,那么该目录中的所有内容都会被逐字复制到您的包目录中,不包括 inst/
.
例如,如果您的包目录如下所示:
+- DESCRIPTION
+- NAMESPACE
+- inst/
| \- rmd/
| \- file.Rmd
\- R/
+- file1.R
+- file2.R
\- file3.R
然后当您构建包并安装它时,您会在包库中找到以下内容:
+- DESCRIPTION
+- INDEX
+- NAMESPACE
+- rmd/
| \- file.Rmd
\- R/
+- packagename
+- packagename.rdb
\- packagename.rdx
(其他 files/directories 是在此过程中创建的,为简单起见,我将忽略它们。)
你需要知道的最后一条信息是"how do I access this file once it is installed?"由于一些系统将R库安装在不同的目录中,并且用户经常在其之上安装包在个人 R 库中,您无法先验地知道去哪里查找 输入 system.file
:
system.file("rmd", "file.Rmd", package = "packagename")
## [1] "c:/R/R-3.1.3/library/packagename/rmd/file.Rmd"
这可以用于整个 Rmd 文件。我将它用于 Rmd-rendered 文档的 company-specific 模板。也就是说,我寻找 "include" 文件来个性化 LaTeX,以便呈现的 PDF 具有 headers/footers 并且按照我们想要的方式设置样式。此步骤需要编写一个函数来替换 Rmd YAML header 中的 pdf_document
(例如),但在 rmarkdown.rstudio.com.