RMarkdown accessing parameter from bash chunk
I've seen a few options
Use
Sys.setenv
to export variables from R to bash, so add this line to an R chunk.Sys.setenv(params = params$myParam1)
Use the runr package
To apply the export-to-envirnoment idea from the accepted answer to all params, just add the following do.call
loop to an R chunk before the bash chunk:
```{r, echo=FALSE, message=FALSE}for (key in names(params)) { do.call('Sys.setenv', params[key])}```
Thanks Chris S, this works fine.I share the workaround I used (create tmp file) in case someone would be interested :
---output: html_documentparams: myParam1: label: "Choose 1st parameter" value: 20 input: slider min: 0 max: 100 myParam2: label: "Choose 2nd parameter" value: "Hello" input: text---```{r setup, include=FALSE}knitr::opts_chunk$set(echo = TRUE)```
Chris solution :
```{r, echo=FALSE}Sys.setenv(param1=params$myParam1)Sys.setenv(param2=params$myParam2)``````{bash, echo=FALSE}echo $param1echo $param2```
My workaround :
```{r}param1 <- paste0("param1=\"",params$myParam1,"\"")param2 <- paste0("param2=\"",params$myParam2,"\"")# Write parameters in temporary filefileConn <- file("~/params.tmp")writeLines(c(param1,param2), fileConn)close(fileConn)``````{bash, echo=FALSE}. ~/params.tmprm ~/params.tmpecho $param1echo $param2```