2016-04-08 9 views
1

Ich benutze Knitr, um ein Manuskript zu schreiben. Ich verwende Inline-Chunks, um sicherzustellen, dass der Text meinen tatsächlichen Daten entspricht. Zum Beispiel "Ich führte eine Regression an \ rinline {nrow (df)} Datenpunkten durch."Können Sie Inline-Chunks in Knitr zuletzt auswerten?

Diese Informationen werden jedoch in den abstrakten und anderen frühen Teilen des Textes benötigt, während df durch Code erstellt wird, der neben dem Methodenabschnitt ist, der erklärt, wie er erstellt wird.

Kann ich alle Inline-Chunks zwingen, zuletzt auszuwerten?

Um hier klar zu sein, ist ein Abschriftenbeispiel.

Abstract 
--------- 
My study is really interesting. 
I performed regression on `r nrow(df)` data points. 

Methods 
-------- 

I used simulated data drawn from a normal distribution. 

```{r data} 

df <- data.frame(x = rnorm(10), y = rnorm(10)) 
``` 

Der zweite Satz in der Zusammenfassung sollte lesen "Ich führte Regression auf 10 Datenpunkte."

+1

In Verbindung stehend (obwohl ein spezieller Fall): http://stackoverflow.com/questions/24498362/how-to-force-knitr-to-evaluate-sexpr-after-all-other-code-chunks –

+0

@CL. Danke dafür. Definitiv verwandt, nicht sicher, ob ich es sinnvoll auf meinen Fall anwenden kann. – timcdlucas

+1

Ich denke nicht, dass es auf Ihren Fall angewendet werden kann. Aber zukünftige Leser, die daran interessiert sind, "Inline Code zuletzt zu bewerten", finden es vielleicht hilfreich, deshalb habe ich den Link gepostet. –

Antwort

1

Beim Schreiben der MRE habe ich die Antwort gefunden.

Wenn Sie das Dokument in einer R-Sitzung stricken, werden die Variablen im globalen Namespace gespeichert. Wenn Sie das Dokument ein zweites Mal stricken, werden die Inline-Chunks ausgefüllt.

Ich habe keine Fehler in der ersten stricken. Sie müssen also überprüfen, ob das endgültige Dokument alle Inline-Werte enthält.

+0

das ist nicht wie knitr funktionieren sollte, können sie ein beispiel zeigen, wie sie dieses verhalten bekommen? – rawr

+0

Verwenden Sie das Beispiel in der Frage, führen Sie "stricken" einmal gibt "Ich führte Regression auf Datenpunkten." (zwei Räume). Ein zweites Mal (innerhalb derselben R-Sitzung) gibt "Ich führte eine Regression für 10 Datenpunkte durch". – timcdlucas

+0

Ich bin mir jetzt weniger sicher, ob das so funktioniert, wie ich dachte. Ich könnte ohne das Inline-Bit ausgeführt haben, dann den Inline-Chunk hinzugefügt und erneut ausgeführt haben. – timcdlucas