Verwenden Sie die Schleife, um einen Textabschnitt in rmarkdown zu generieren

8

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%     
amit 17.04.2016, 09:29
quelle

2 Antworten

7

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 ).

%Vor%

Ausgabe:

  

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.

    
CL. 23.04.2016 09:14
quelle
3

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.

aufrief     
amit 25.04.2016 14:34
quelle

Tags und Links