结合“询问”和输入参数的参数化Markdown报告

时间:2018-09-06 08:38:09

标签: r shiny markdown r-markdown

我想用HTML渲染R脚本,结合用户和其他人选择的参数,这些参数作为生成报告的函数的输入而输入。

我创建了file.r,它可以选择一些参数,例如

#' title: "`r params$title`"
#' author: "xxx"
#' date: "`r format(Sys.time(), '%d %B, %Y')`"
#' output:
#'    html_document:
#'      css: styles.css
#'      toc: true
#' params:
#'   apiFolderPath:
#'     label: "Current working directory (without \'quotes\')"
#'     value: ""
#'   title: 
#'     label: "Title"
#'     value: "HTML API Report"
#'   modelType:
#'     label: "Model"
#'     value: 'rpart'
#'     input: radio
#'     choices: ['rpart', 'xgboost']

setwd(params$apiFolderPath)
...

但是我想将apiFolderPath的默认值用作当前的工作目录,因为file.r需要从那里获取其他功能。

在一个R脚本上,我定义了函数:

generate_report <- function(path_to_file){
  library(rmarkdown)
  rmarkdown::render(paste0(path_to_file,'/file.r'),
                    params = 'ask',
                    envir = new.env())
}

在另一个R脚本上,我称之为:

input_path <- 'path'
generate_report(path_to_file = input_path)

总而言之,我想当我调用generate_report(path_to_file = input_path)时,在报告的参数'path'中将apiFolderPath作为默认值。


编辑1:

我尝试设置

#' params:
#'   apiFolderPath:
#'     label: "Current working directory (without \'quotes\')"
#'     value: "`r getwd()`"

但是它返回字符串r getwd()作为默认值,带有引号转义符,并且不能用于设置file.r的工作目录。

编辑2:

实际上,我不需要在要呈现的文件中设置工作目录,因为所有文件都来自呈现file.r的文件夹。尽管如此,我想知道如何将当前工作目录显示为参数apiFolderPath 的默认值(用户可能会更改它)。

0 个答案:

没有答案