首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用可查找到的.Rmd文件模板开发R包

使用可查找到的.Rmd文件模板开发R包
EN

Stack Overflow用户
提问于 2017-07-07 12:35:53
回答 2查看 152关注 0票数 2

我正在开发一个R包,我的包函数之一是generate_report(),它使用模板Rmd文件和函数参数生成一个带有rmarkdown的html报告:

代码语言:javascript
复制
#' generate report based on templete file
#' @import rmarkdown
#' @export
generate_report <- function(x, y){
  rmarkdown::render('templete.Rmd', envir = list(x = x, y = y))
}

下面是inst/templete.Rmd文件:(编译包后,它将被移到包的顶层文件夹中:

代码语言:javascript
复制
---
title: "templete"
output: html_document
---

## Head 1

```{r}

打印(X)

代码语言:javascript
复制
```{r}

打印(Y)

代码语言:javascript
复制

我的问题是,当包被devtools::install()编辑时,generate_report()函数找不到templete.Rmd文件,如何让函数正确地找到这个templete.Rmd文件呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-07 13:00:07

您的rmarkdown::render()调用需要按照http://r-pkgs.had.co.nz/inst.html使用system.file

票数 0
EN

Stack Overflow用户

发布于 2017-07-07 13:36:59

system.file是正确的方式,感谢MrFlick先生和Jonathan Carroll。这是我的最终代码:

代码语言:javascript
复制
generate_report <- function(x, y, output_dir){
      file <- system.file("templete.Rmd", package = 'mypackage-name')
      if (missing(output_dir)) {
         output_dir <- getwd()
      }
      rmarkdown::render(file, envir = list(x = x, y = y), output_dir = output_dir)
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44962621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档