2016-03-16 18 views
6

È possibile prendere un file rmarkdown, modificare a livello di programmazione le opzioni di blocco e quindi knit in base al documento modificato?rmarkdown: manipola le opzioni del blocco programmaticamente?

Ho alcuni file rmarkdown che voglio purl, con tutti i codici (anche quelli con eval=FALSE) inclusi.

A questo punto, la mia ipotesi migliore è che ho potuto (1) utilizzare sed per passare eval=FALSE-eval=TRUE, e poi (2) purl. Ma mi piacerebbe se c'è qualcosa di più bello, per esempio forse come:

parsed_rmd <- knitr::parse_rmd('my_rmarkdown.rmd') 
for (chunk in parsed_rmd) { 
chunk$eval <- TRUE 
} 
knitr::purl(parsed_rmd, output = 'my_rmarkdown_as_r.R' 
+0

Possibile duplicato di [Conditional \ 'echo \ '(o eval o include) nei blocchi rmarkdown] (http://stackoverflow.com/questions/25354903/conditional-echo-or- eval-or-include-in-rmarkdown-chunks) –

+0

Non è un duplicato. Quella domanda dice "C'è un modo per impostare un interruttore all'inizio del Rmd ..." - la mia domanda non è chiedere di modificare il file 'Rmd', ma come manipolare l'elaborazione di un file' Rmd' che io Non sono libero di modificare. – DavidC

+0

Se l'Rmd aveva variabili in quei punti (come eval = doEval), probabilmente si potrebbe fare "eval <- FALSE; knit ("file.Rmd") 'Senza modificare ulteriormente il file Rmd. Funzionerebbe? –

risposta

0

È possibile impostare 'echo' ad una condizione logica sulla base di un parametro.

Creare un file Rmarkdown (.RMD) e definire il parametro nell'intestazione YAML:

params: 
    show_optional: no 

Impostare l'opzione 'eco' per il codice pezzo non si può decidere di mostrare per testare il valore di questo parametro:

```{r optional_code, echo = (params$show_optional == "Yes")} 
# chunk with code you only want to show sometimes 
``` 

Quindi chiamare rmarkdown_render con il parametro appropriato:

rmarkdown::render(file = "myreport.rmd", params = list(show_optional = "yes") 

Vedere http://rmarkdown.rstudio.com/developer_parameterized_reports.html per ulteriori informazioni sull'uso dei parametri

Problemi correlati