Ich muss einen Bericht erstellen, der aus mehreren Abschnitten besteht. Alle Abschnitte sehen ähnlich aus und weisen nur wenige Unterschiede in den Daten auf. Die Anzahl der Abschnitte hängt auch von den Daten ab. Was ich letztendlich haben möchte, ist etwa so:
%Vor%Das Ergebnis sollte ein einzelnes HTML / Dokument mit allen Abschnitten nacheinander sein.
Können Sie mich auf eine Möglichkeit hinweisen, eine solche Rmd-Datei mit der Schleife zu erstellen?
Idealerweise hätte ich gehofft, etwas wie in PHP zu sehen:
%Vor%Diese Frage ist ähnlich wie diese , obwohl es LateX / RNW basiert. Außerdem zeigt diese Antwort , wie ein Rmarkdown-Dokument dynamisch generiert wird. Keine der Fragen ist jedoch eine exakte Kopie dieser Frage.
Grundsätzlich gibt es zwei Denkschritte:
Finden Sie heraus, welches Markdown-Markup pro Abschnitt benötigt wird. Dies könnte etwas nach dem Vorbild von
sein %Vor%Schreiben Sie R-Code, der dieses Markup generiert und die Platzhalter durch die entsprechenden Werte ersetzt.
Für Schritt 2 verwenden Sie sprintf
ein natürlicher Kandidat, um statischen und dynamischen Text zu kombinieren. Vergessen Sie nicht, die Chunk-Optionen results = "asis"
zu verwenden, um knitr
daran zu hindern, Ihrer Ausgabe Formatierungen hinzuzufügen und% co_de zu verwenden % (anstelle von cat
), um zu verhindern, dass R zusätzliche Elemente wie Anführungszeichen und Elementnummern hinzufügt.
Ich habe die Eingabedatenstruktur aus Gründen der Übersichtlichkeit etwas geändert (mit print
anstelle der unabhängigen Vektoren data.frame
und section_names
).
Dies ist Abschnitt A
Abschnittsdaten sind
section_data
. Zusätzlicher Abschnittstext ist: PUFTZQFCYJFNENMAAUDPTWIKLBSVKWMJWODFHSPRJRROTVDGNEROBVQPLLMVNPOUUHGVGRPMKAOAOMVYXKMGMUHNYWZGPRAWPYLU.Dies ist Abschnitt B
Abschnittsdaten sind
0.83
. Zusätzlicher Abschnittstext ist: PFTYCGFSGSMAYSCZXWLNLDOQEBJYEVSJIYDJPEPSWQBNWJVRUKBTYIUSTOFKJFEJCWCAYBCQSRTXUDEQLLXCZNPUKNLJIQJXE.Dies ist Abschnitt C
Abschnittsdaten sind
0.49
. Zusätzlicher Abschnittstext ist: FCJDDDMNLBUSJMCZVSBPYWCKSFJEARBXXFPAGBTKCWKHPEDGYWYTNGLVGQGJAFZRUMNSDCHKTMGRFNSUZKFLOUGNWHUBNLVMGDB.Dies ist Abschnitt D
Abschnittsdaten sind
0.58
. Zusätzlicher Abschnittstext ist: YQIXHABFVQUAAYZNWTZXJDISSLTZJJAZOLJMJSXEENFTUOFOTYKDNNUMFDXLJSWZEVDLCVSYCTSMEXFLBVQYRTBEVZLCTEBPUGTT.
Ich teile einfach den Ansatz, den ich irgendwann benutzt habe.
Ich habe eine Markdown-Datei für die Sektion geschrieben. bereitete die Daten für jeden Abschnitt im Masterdokument vor und überschlug alle Abschnitte, die ich benötigte, jedes Mal, wenn ich mit strick_child () mit dem Abschnitt Rmd.
aufriefTags und Links r r-markdown knitr