我想知道是否有人对如何在R Markdown报告中创建动态参数有任何想法。目前,我有一个包含八个参数的报告,这些参数都是硬编码的。我希望这些参数的值是动态派生的(基于查询,因此是基于数据帧),并且希望上层参数中的值驱动下层参数的选择子集。
---
title: My Document
output: html_document
params:
system:
label: "Select System:"
value: A
input: select
choices: [A, B]
fig_num:
label: "Starting Figure Number:"
value: 1
min: 1
max: 100
input: numeric
attach_let:
label: "Attachment Letter:"
value: "A"
input: text
Program:
label: "Select Program:"
value: 1A
input: select
choices: [1A, 1B, 2A, 2B]
ProgramRisk:
label: "Select Sample Program Risk:"
value: 1
input: select
choices: [1, 2, 3]
---
```{r setup, include=FALSE}
# set this option in the first code chunk in the document
knitr::opts_chunk$set(echo = params$printcode)
```
理想情况下,我希望System参数的值直接来自SQL查询(例如-A.Table的SELECT DISTINCT系统)。然后,用户将选择一个值,然后在Program参数中说出这些值-这些值是从另一个查询派生的(例如SELECT DISTINCT Program FROM B.Table,其中System = [Param $ System]。因此,这将防止用户在该系统不存在的程序。
我已经看到您可以使用!r在YAML标头中直接使用R代码,但这似乎仅限于基本调用(如Date ....等)。有谁知道如何将这些信息获取到参数并允许参数被另一个(较早的)参数过滤?
任何帮助将不胜感激!先感谢您!
答案 0 :(得分:1)
好的,所以看起来我可以在可以充当接口的HTML文档中运行真正的Shiny交互式元素。我非常感谢Shiny是RMarkdown的核心,我想我只是一心一意。尽管它不像RMarkdown参数那么简单,但是它提供了更大的灵活性,因为我可以一开始就运行代码,从而可以填充参数并控制过滤
https://rmarkdown.rstudio.com/authoring_shiny
工作流程如下: 1)有人运行Shiny代码 2)选择参数值 3)点击“确定” 4)这些值用于呈现基础报告 5)报告另存为pdf。
@divibisan-感谢您的帮助!让我有所不同。