generieren markdown-Kommentare innerhalb der for-Schleife
Ich versuche zu generieren, die einen HTML-Bericht, mit knitr, basiert auf einem R-script for-Schleifen. Ich will generieren markdown Kommentare aus den Kommentaren innerhalb der for-Schleife, aber ich bin nicht sicher, ob es möglich ist.
Hier ist ein einfaches Beispiel, das ist im test.R:
for (i in 1:5) {
## This is a heading for `i`
#' This is a comment for `i`
print(i)
}
Dann benutze ich spin zu generieren, die eine Rmd Datei:
spin('test.R')
Jedoch die Rmd-Datei sieht wie folgt aus.
```{r }
for (i in 1:5) {
## This is a heading for `i`
#' This is a comment for `i`
print(i)
}
```
Den markdown-Kommentare innerhalb der R-chunk werden nicht kompiliert zu HTML. Ist es möglich?
Dank,
Peter
- es klingt wie Sie wollen, um einige R-Codes vor der Konvertierung zu Rmd, während so wie ich es verstehe spin (gefolgt von stricken), tut es die andere Weise herum. Ich denke, brauen Vorlagen könnte hier helfen.
- Ich denke, Sie wirklich meinen roxygen-Kommentare anstelle von "Markdown" - Kommentare. Wie @baptiste erwähnt,
brew
ist mehr anspruchsvoll für diese Art von Aufgaben (erstellen von text aus einer Schleife). - sind Sie richtig. Die R-Datei enthält roxygen-Kommentare, die ich hoffe, wird konvertiert Markdown-Kommentare nach, die ich ausführen spin.
- vielen Dank für die Anregungen, ich werde überprüfen brauen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie können erhalten, was Sie wollen in knitr mit dem code-chunk-option Ergebnis='asis', die Sie angeben können, nachdem "#+" in ein R-Skript übergeben werden, um zu Spinnen (aber der code sieht weniger "sauber" als die interessanten Gebräu Vorschlag von @daroczig):
Wenn dieser test ist.R-Skript ist, und dass Sie spin("test.R"), die daraus resultierende md-Datei wird wie folgt Aussehen :
cat('\n')
nachprint(i)
für die Rubriken 2 bis 5 erbracht werden, die als überschriften.One-Lösung, die für mich gearbeitet ist, wird durch den so erstellen Sie eine Schleife, die beide enthält einen code-chunk und text mit knitr in R. Durch die Verwendung Beide
results='asis'
und zwei Stellplätze vor\n
am Ende jeder Schleife.Beispiel:
, Ohne das zwei Leerzeichen:
Ausgabe (html):
Wie Sie sehen können, die Kommentare und überschriften get messed zusammen
Lösung:
Mit zwei Räumen:
cat(" \n")
am Ende der SchleifeHinweis:
cat(" \n")
werden muss am Ende, es funktioniert nicht, auch wenn Sie zeichnen oder zu berechnen, etwas, das es in die Schleife.Habe ich (wieder)implementiert einige Funktionen
knitr
unabhängig von @Yihui basierend aufbrew
in meinem pander - Paket, das helfen könnte, mit solchen (und ähnlichen) Problemen, wenn Sie nicht wollen, zu laufenbrew
vorknit
ting. Quick demo:Bitte beachten Sie: Sie können auch passieren Sie eine Datei zu
Pandoc.brew
(müssen nicht so lästig setup mit dertext
argument mit real-life-Probleme), und Sie können auch verwenden<% ... %>
tags für z.B. Konditionalsätze (wie zeigen oder nicht Rendern Teil des Berichts). Und am wichtigsten: es gibt einen riesigen Unterschied zwischen<% ... %>
(unverarbeitet R-Befehle) und<%= ... %>
(die Ergebnisse werden verarbeitet, indempander
) tags. Letzteres bedeutet, dass alle zurückgegebenen R-Objekte transformiert werden, um Pandoc ' s markdown, z.B.: