Ich fand einen wirklich schönen Trick (link) zu einer Funktion von Knitr, wo Sie Ihre Ausgabe HTML in einem Ausgabeordner und unter einem anderen Dateinamen speichern können.Rmarkdown richtend Ausgabedatei in ein Verzeichnis
Das einzige, was Sie in den Header mit dem Hinterkopf haben, ist die folgende:
title: "analysis"
author: "Me"
date: "`r format(Sys.time(), '%d %B, %Y, %H:%M')`"
knit: (function(inputFile, encoding) {
rmarkdown::render(inputFile,
encoding=encoding,
output_file=file.path(dirname(inputFile), out_dir, 'analysis.html')) })
output:
html_document:
number_sections: yes
toc: yes
Diese ‚manchmal‘ auf meinem Mac funktioniert sehr gut, aber manchmal hat es Probleme bei der out_dir Variable zu finden ...
dachte ich zuerst über die Stücke zum ersten Mal ausgeführt, so dass die Variable gesetzt ... Aber das Problem nicht gelöst ...
I Sitzung auch wieder gestartet R und dies nicht geholfen hat.
Der letzte Schritt war das Schließen von R, Speichern des Arbeitsbereichs und nach dem erneuten Öffnen von R und Laden Arbeitsbereich funktioniert es wieder wie ein Charme.
ich nicht den Original-Beitrag finden konnte, wo jemand diesen Trick empfohlen ...
EXACT WORKFLOW NACHDRUCK es
offen neues Projekt, Namen in einem neuen Ordner testen
ar Abschlag erstellen Dokument
der Änderungskopf an:
---
title: "Untitled"
author: "Me"
date: "`r format(Sys.time(), '%d %B, %Y, %H:%M')`"
knit: (function(inputFile, encoding) {
rmarkdown::render(inputFile,
encoding=encoding,
output_file=file.path(dirname(inputFile), out_dir, 'analysis.html')) })
output:
html_document:
number_sections: yes
toc: yes
---
```{r write quant output files}
out_dir <- 'test'
if(!file.exists(out_dir)) {
dir.create(out_dir)
}
```
das Dokument als test.Rmd speichern
Klicken Sie auf den Knit-Button (html wird jetzt aus den Optionen des Buttons entfernt)
Das wird scheitern!
Schließen Sie das Projekt!
Klicken Sie auf Speichern Umgebung!
Öffnen Sie das Projekt und klicken Sie auf stricken!
Alles funktioniert.
ausführen rm (list = ls()) alles danach wieder funktioniert
Stellen Sie sich vor, dass Code in einer Lauf Säubern Sie R Sitzung. Wie weiß R, was "out_dir" ist, wenn Sie es nicht definiert haben? Wenn dies nach dem erneuten Laden des Arbeitsbereichs funktioniert, liegt dies daran, dass "out_dir" ein Objekt ist, das von der letzten R-Sitzung übernommen wurde, wodurch der Code funktionieren kann, obwohl dies nicht der Fall ist. – Thomas
Sie haben Recht, aber der Befehl wird am Rmakdown-Prozess ausgewertet, wenn der HTML-Code erstellt wird. Ich kann auch die Variable out_dir manuell setzen und es gibt immer noch das gleiche Problem und Rstudio beschwert sich, dass out_dir nicht existiert ... Wenn das Skript einmal ausgeführt wird, kann ich auch rm (list = ls()) ausführen und es funktioniert danach Nun ... Ich denke, es ist nicht nur ein Problem, die Variable zu setzen ... – drmariod
Es gibt keine Möglichkeit, dass dieser Code ohne die Angabe dieser Variable funktionieren kann. Warum es zu funktionieren scheint, ist ohne eine vollständige Beschreibung des von Ihnen verfolgten Workflows schwer zu sagen. – Thomas