2014-06-19 1 views
5

Ich bereite ein .RMD-Dokument vor, das mit einer Zusammenfassung beginnt. Ich möchte einen Inline-R-Code einfügen, um einige der wichtigsten Ergebnisse im Voraus zu präsentieren. Diese Ergebnisse werden jedoch später im Dokument als Teil des Körpers berechnet.Wie stelle ich eine Variable außerhalb der Reihenfolge in R Markdown?

Gibt es eine Möglichkeit, ein Ergebnis im gerenderten Dokument außerhalb der Reihenfolge/Reihenfolge mit der tatsächlichen Berechnung zu präsentieren?

Antwort

5

Sie könnten Stück wiederverwenden in Knitr (siehe http://yihui.name/knitr/demo/reference/) verwenden. Hier würden Sie Ihre Stücke zuerst analysieren, aber nicht die Ausgabe erstellen, dann die Zusammenfassung und dann die Details ausgeben. Hier sind einige schnelle Abschlags knitr Code, dies zu zeigen:

```{r chunk1, echo=FALSE, results='hide'} 
x <- rnorm(1) 
x 
``` 

the value of x is `r x`. 

```{r chunk2, ref.label='chunk1', echo=TRUE, results='markup', eval=2} 
``` 

Beachten Sie, dass der Code zweimal ausgewertet werden, es sei denn Sie Schritte unternehmen, um diese (die eval = 2 in meinem Beispiel) zu verhindern.

Eine andere Option wäre, zwei untergeordnete Dokumente zu erstellen, die erste führt Ihren Hauptcode aus und erstellt die Ausgabe, die zweite erstellt die Zusammenfassung. Dann fügen Sie in Ihrem übergeordneten Dokument zuerst die Zusammenfassung und dann den Detailteil ein. Ich denke, dass Sie knitr auf diesen von Hand ausführen müssen, damit Sie es in der richtigen Reihenfolge tun, würden die automatischen untergeordneten Dokumenttools wahrscheinlich in der falschen Reihenfolge ausgeführt werden.

+0

Danke Greg. Diese erste Option könnte gut genug funktionieren. Sehr geschätzt! – sinjin

Verwandte Themen