Mit einer R Markdown-Datei möchte ich verschiedene mögliche Ausgabe-PDF-Dokumente erstellen, wobei der Name der Ausgabedatei innerhalb des Dokuments definiert werden sollte. Gibt es eine Möglichkeit, Markdown davon zu überzeugen, den Ausgabedateinamen so zu manipulieren? Idealerweise würde ich den Dateinamen gern an ein r-Chunk übergeben.R Markdown - Name der variablen Ausgabe
Antwort
Sie die Einfachheit der Verwendung der RStudio Knit
Taste und Reproduzierbarkeit eines YAML-Header unter Verwendung der undokumentierten knit
Haken halten, neu zu definieren, was die Taste funktioniert (Standard-Funktion aufgerufen wird rmarkdown::render
). Der Parameter output_file
der Renderfunktion gibt den Dateinamen an. Wenn Sie ihn also festlegen, überschreiben Sie das Standardverhalten, indem Sie das gleiche Präfix wie den Eingabedateinamen verwenden.
z.B. immer Ausgang genannt eine Datei myfile.pdf
knit: (function(inputFile, encoding) { rmarkdown::render(inputFile, encoding = encoding, output_file = file.path(dirname(inputFile), 'myfile.pdf')) })
Die Funktion kann aus einem Paket ein anonymer Einzeiler sowie importiert werden, wie here mit slidify gesehen.
Sie können Ihre eigenen YAML-Header setzen (ich weiß nicht, ob dies überhaupt ratsam ist), zugänglich unter rmarkdown::metadata$newheader
, aber sie scheinen nicht innerhalb dieser Art von Funktion verfügbar, soweit ich sehen kann.
Wie übergeben Dateinamen von einem R-Chunk ... wenn Sie Code-Chunks unter dem YAML-Header beziehen, denke ich, dass das nicht möglich ist (?). Header können Inline-R-Befehle enthalten (einzelner Backtick eingeschlossen, beginnend mit r
), aber anscheinend nicht für diese Hook-Funktion.
Verwandte:
- Rmarkdown GitHub Repo-Ausgabe - output format-specific
output_file
- Blog post ich im Anschluss an diese Frage schrieb on more elaborate uses of the
knit:
hook/entsprechenden GitHub wiki notes
Fehler in rmarkdown :: Metadaten $ title <- "Mein Titel": Objekt 'rmarkdown' nicht gefunden – jzadra
@yihuixie, kann ich Params übergeben $ was auch immer in den Ausgabedateinamen auf diese Weise? Mein Abschlag verwendet params $ data, um die relevante Datei abzurufen, aber es sieht nicht so aus, als ob dies in Ihrem Einzeiler funktioniert - "params $ data not found". Ich kann alles, was ich will, von einem Skript mit 'rmarkdown :: render (params = list (data =" Oct2017data "), output_file =" Oct2017_analysis.html ")' übergeben, aber natürlich möchte ich es nur einmal eingeben können. – StasK
Das ist ziemlich viel, was ich tun:
rmarkdown::render('my_markdown_report.Rmd',
output_file = paste('report.', Sys.Date(),
'.pdf', sep=''))
ich drei Skripte haben - man die Daten und Verfahren zieht es, zweite erstellt Diagramme & Tabellen für Bericht. Der dritte erstellt einen Bericht basierend auf der Markdown-Datei. Oben stehende Code der Teil des dritten Skript ist
Bisher habe ich nur den RStudios Knit-Befehl benutzt, um eine Markdown-Datei zu kompilieren.Wenn ich Sie richtig verstehe, erstellen Sie die eigentliche Markdown-Datei mit R-Befehlen und steuern sogar das Stricken des Markdowns mit R-Befehlen? Ich war mir dieser Vorgehensweise bisher nicht bewusst, aber ich werde genauer hinsehen. Bis jetzt habe ich auch die Daten vorbereitet und in einem ersten Skript verarbeitet, aber bereits im zweiten Schritt habe ich manuell eine Markdown-Datei erstellt, die z. verschiedene Datenquellen in einem Bericht. – Sosel
Ja. Markdown-Datei ist eigenständiges Skript, es liest Daten Orte Diagramme und Tabellen zusammen. Es heißt aber von außen Skript - Sie können es auch von Rstudio starten und ausführen und erstellen eine Datei mit dem gleichen Namen. Ich aber nenne es aus separatem Skript und nach rmarkdown erstellt pdf Ergebnisdatei wird an verschiedenen Orten kopiert – ilya
Im Anschluss an welchem @ilya schrieb, diese Webseite hat ein großartiges Beispiel, das zeigt, was sie beschreiben, nämlich wie man mehrere reproduzierbare Berichte aus demselben .RMD-Dokument erstellt :
http://www.reed.edu/data-at-reed/software/R/markdown_multiple_reports.html
Die Webseite verwendet zwei Skripte, ein R-Skript und ein Rmarkdown Skript mehrere Berichte zu erstellen. Ich habe es als Vorlage für meine eigene Arbeit verwendet und fand es sehr nützlich.
- 1. Shiny-Ausgabe und R MarkDown render_site()
- 2. R inline markdown
- 3. Interaktive Header R Markdown
- 4. Name der dynamischen Ruby-Variablen
- 5. Unterdrücken automatische Nummerierung in PDF-Ausgabe mit r Markdown/Knitr
- 6. DocFX Ausgabe nach Markdown
- 7. Wie Name der Variablen in R (Ersatz) erhalten?
- 8. Inline-Dplyr in R Markdown
- 9. Ausgabe der Codezelle mit Markdown formatieren
- 10. R Markdown - opt_hooks nicht
- 11. TikZ in R Markdown
- 12. Python Alternative zu R Markdown
- 13. R Markdown Math Gleichung Ausrichtung
- 14. Jekyll Converter für R Markdown
- 15. Anpassen von R markdown pdf Dokument
- 16. Verwenden von Variablen in Concordion markdown
- 17. Shiny - nicht in der Lage, eine Markdown-Ausgabe herunterladen
- 18. Overlapping Columns stricken R Markdown to PDF
- 19. HTML-Code aus dem R-Markdown ausgeben
- 20. GitHub Markdown - Add aktuellen Zweig Name
- 21. Publishing R Markdown-Dateien als Blog-Post
- 22. R Markdown: Probleme mit Latex-Headern
- 23. Unterdrücken der Ausgabe in R
- 24. Wert der Variablen in R
- 25. Mix Python Ausgabe und Markdown in Jupyter
- 26. SQL Server Name der Spalten als Variablen
- 27. Name der Variablen in Typoskript erhalten
- 28. GitHub MarkDown: Sind Makros und Variablen möglich?
- 29. Der einfachste Weg, Platzhalter (Variablen) in Markdown-Text zu ersetzen?
- 30. Lagging Variablen in R
könnten Sie Ihren Befehl eingeben? Möchten Sie Dateien "dynamisch" benennen? 'paste0 (" Datei _ ", x,". pdf ")?' x könnte ein Datum oder der Name eines Datensatzes sein – rmuc8
Bisher habe ich RStudio benutzt, um den Strickbefehl auszuführen, ohne genauer in Details zu suchen. Aber ich sollte mir die Antwort von ilyas näher ansehen, klingt nach einem viel klareren Ansatz. – Sosel