运行 基于交互式参数选择的 R Markdown
Run an R Markdown based on interactive parameter choice
我正在尝试在 R Markdown 上执行以下操作。基本上,我希望用户能够在名为“Machine”的参数的两个值之间 select 并根据值 selected 运行 一些块而不是其他块。我知道“eval”选项在这里可能很有用,但我不知道如何使用它来实现我的目标。
我目前的代码是这样的(在 R Markdown 中):
---
title: "SUM and SAM"
output: html_document
params:
machine:
label: "Machine"
value: SUM
input: select
choices: [SUM, SAM]
printcode:
label: "Display Code:"
value: TRUE
date: !r Sys.Date()
data:
label: "Input dataset:"
value: None
input: file
years_of_study:
input: slider
min: 2018
max: 2020
step: 1
round: 1
sep: ''
value: [2018, 2019]
---
```{r setup, include=FALSE}
############# IMPORTANT ###################################
#Remember to Knit with Parameters here using the "Knit button"--> "Knit with Parameters".
####################################################
#If you only want the parameters to be shown, run the following.
#knit_with_parameters('~/Desktop/Papers/git_hub/sum_sam.Rmd')
#This must be left uncommented if we want to show the content of the Markdown file once "Knit with Parameters" is pressed.
knitr::opts_chunk$set(echo = TRUE)
现在说我想要一个仅当 machine = SAM 时才会执行的块。我该怎么做?
正在考虑类似的事情:
{r pressure, echo=FALSE, eval=params$machine}
plot(pressure)
但不起作用
谢谢,
费德里科
假设有一个名为 foo.Rmd
的文件,内容如下:
---
title: "SUM and SAM"
output: html_document
params:
machine:
input: select
choices: [SUM, SAM]
value: SUM
---
```{r, eval = params$machine == "SAM", echo=FALSE}
print("SAM was chosen")
```
```{r, eval = params$machine == "SUM", echo=FALSE}
print("SUM was chosen")
```
那么你可以这样做:
rmarkdown::render("foo.Rmd", params = list(machine = "SAM"))
或者,RStudio 中有选项knit with parameters
:
导致foo.html
:
我正在尝试在 R Markdown 上执行以下操作。基本上,我希望用户能够在名为“Machine”的参数的两个值之间 select 并根据值 selected 运行 一些块而不是其他块。我知道“eval”选项在这里可能很有用,但我不知道如何使用它来实现我的目标。 我目前的代码是这样的(在 R Markdown 中):
---
title: "SUM and SAM"
output: html_document
params:
machine:
label: "Machine"
value: SUM
input: select
choices: [SUM, SAM]
printcode:
label: "Display Code:"
value: TRUE
date: !r Sys.Date()
data:
label: "Input dataset:"
value: None
input: file
years_of_study:
input: slider
min: 2018
max: 2020
step: 1
round: 1
sep: ''
value: [2018, 2019]
---
```{r setup, include=FALSE}
############# IMPORTANT ###################################
#Remember to Knit with Parameters here using the "Knit button"--> "Knit with Parameters".
####################################################
#If you only want the parameters to be shown, run the following.
#knit_with_parameters('~/Desktop/Papers/git_hub/sum_sam.Rmd')
#This must be left uncommented if we want to show the content of the Markdown file once "Knit with Parameters" is pressed.
knitr::opts_chunk$set(echo = TRUE)
现在说我想要一个仅当 machine = SAM 时才会执行的块。我该怎么做?
正在考虑类似的事情:
{r pressure, echo=FALSE, eval=params$machine}
plot(pressure)
但不起作用
谢谢,
费德里科
假设有一个名为 foo.Rmd
的文件,内容如下:
---
title: "SUM and SAM"
output: html_document
params:
machine:
input: select
choices: [SUM, SAM]
value: SUM
---
```{r, eval = params$machine == "SAM", echo=FALSE}
print("SAM was chosen")
```
```{r, eval = params$machine == "SUM", echo=FALSE}
print("SUM was chosen")
```
那么你可以这样做:
rmarkdown::render("foo.Rmd", params = list(machine = "SAM"))
或者,RStudio 中有选项knit with parameters
:
导致foo.html
: