2016-03-16 13 views
6

Ist es möglich, eine Rmarkdown-Datei zu nehmen, chunk-Optionen programmgesteuert zu manipulieren und dann knit basierend auf dem geänderten Dokument?rmarkdown: manipulieren Chunk-Optionen programmgesteuert?

Ich habe einige Rmarkdown-Dateien, die ich möchte purl, mit allen Code (auch solche mit eval=FALSE) enthalten.

An dieser Stelle meine beste Vermutung ist, dass ich (1) sedeval=FALSE-eval=TRUE und dann umschalten konnte (2) purl. Aber ich würde gerne, wenn es etwas schönere, zum Beispiel vielleicht wie:

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

Mögliches Duplikat von [Bedingtes \ echo \ '(oder eval oder include) in Rmarkdown-Chunks] (http://stackoverflow.com/questions/25354903/conditional-echo-or-) eval-or-include-in-rmarkdown-chunks) –

+0

Es ist kein Duplikat. Diese Frage sagt "Gibt es eine Möglichkeit, einen Schalter am Anfang des Rmd zu setzen ..." - meine Frage fragt nicht nach dem Ändern der 'Rmd'-Datei, sondern wie man die Verarbeitung einer' Rmd'-Datei manipuliert, die ich Ich kann nicht ändern. – DavidC

+0

Wenn der Rmd Variablen an diesen Stellen hatte (wie eval = doEval), dann könnten Sie wahrscheinlich 'eval <- FALSE; stricken ("file.Rmd") 'Ohne die Rmd-Datei weiter zu ändern. Funktioniert das? –

Antwort

0

können Sie legen ‚echo‘ zu einem logischen Zustand basierend auf einem Parameter.

Eine Rmarkdown (.Rmd-Datei) und definieren die Parameter in der YAML-Header:

params: 
    show_optional: no 

Stellen Sie den 'Echo' Option für den Code Chunk können Sie nicht wollen, den Wert dieses zu testen, um zu zeigen, Parameter:

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

Dann rmarkdown_render mit dem entsprechenden Parameter aufrufen:

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

Weitere Informationen zur Verwendung von Parametern finden Sie unter http://rmarkdown.rstudio.com/developer_parameterized_reports.html