我正在开发一个R包,我的一个包函数是generate_report()
,它使用一个模板Rmd文件和函数参数生成一个带有rmarkdown的html报告:
#' 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
文件:(当编译包时,它将被移动到包的顶级文件夹:
---
title: "templete"
output: html_document
---
## Head 1
```{r}
print(x)
```
```{r}
print(y)
```
我的问题是,当包devtools::install()
时,函数generate_report()
找不到文件templete.Rmd
,如何让函数以正确的方式找到这个templete.Rmd文件?< / p>
答案 0 :(得分:0)
答案 1 :(得分:0)
system.file
是正确的方式,感谢@MrFlick和@Jonathan Carroll。这是我的最终代码:
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)
}