Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用templete.Rmd文件开发R包,该文件可查找到包函数_R_R Markdown_R Package - Fatal编程技术网

使用templete.Rmd文件开发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

我正在开发一个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 = 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)
    }