使用templete.Rmd文件开发R包,该文件可查找到包函数
我正在开发一个R包,我的包函数之一是使用templete.Rmd文件开发R包,该文件可查找到包函数,r,r-markdown,r-package,R,R Markdown,R Package,我正在开发一个R包,我的包函数之一是generate_report(),它使用templete 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
generate_report()
,它使用templete 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))
}
我的问题是,当包是
devtools::install()
ed时,函数generate_report()
找不到文件templete.Rmd
,如何使函数以正确的方式找到这个templete.Rmd文件?您的rmarkdown::render()
呼叫需要使用system.file
按照系统。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)
}
generate\u report您应该使用system.file()
获取包中文件的路径(否则默认情况下R使用当前工作目录)。请参阅:@MrFlick的评论中同时注明:可能重复。
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)
}