2014-10-03 3 views
20

Ich verwende RStudios gestrickte HTML-Funktion, um einige Präsentationen auszugeben. Aber es gibt immer die Dateien in mein aktuelles Arbeitsverzeichnis aus. Wie kann ich es in ein anderes Verzeichnis ausgeben, so dass mein Verzeichnis nur mit den ursprünglichen .rmd-Dateien sauber ist?R: In RStudio wie mache ich Knitr-Ausgabe zu einem anderen Ordner, um zu vermeiden, mein Laufwerk überladen?

+6

Haben Sie die Strick HTML-Taste verwenden? Wenn nicht, können Sie einfach 'rmarkdown :: render ('my.Rmd', output_file = 'folder/my.html')' – Eric

+0

Siehe auch: https://github.com/openenscilabs/ezknitr –

Antwort

10

Wie Eric in den Kommentaren darauf hingewiesen, wenn Sie bereit sind, auf die Bequemlichkeit des Knit HTML-Knopfes (der HTML-Dateien produziert, die neben Ihrem .Rmd leben) zu verzichten, können Sie rmarkdown::render direkt anrufen.

Wenn Sie jedoch wirklich Ihren Workflow anpassen müssen, können Sie die Schaltfläche Knit HTML überschreiben, um den Befehl über die Option rstudio.markdownToHTML auszuführen. Dieser Befehl kann mit bestimmten Optionen (wie z. B. dem Ausgabeverzeichnis) rmarkdown aufrufen und andere Aufgaben vor oder nach der Verarbeitung ausführen. Dokumentation hier:

https://support.rstudio.com/hc/en-us/articles/200552186-Customizing-Markdown-Rendering

Beachten Sie, dass die rstudio.markdownToHTML Option Einstellung wird einige der neueren RMarkdown V2 Integrationsfunktionen gebacken in RStudio deaktivieren, da RStudio nicht mehr in der Lage sein wird, zu schließen, was Motor die machen verwendet wird Dokument.

+1

Ich bin immer noch (Ich versuche, alle intermediate/Ergebnisdateien zu '/ output /' gehen, und ich würde gerne die RStudio-Taste verwenden. Könnten Sie eine MWE zur Verfügung stellen? Leider ist oben links rstudio docs link paywalled oder so. – maxheld

7

Der Trick erwähnt in Rmarkdown directing output file into a directory arbeitete für mich.

Beispiel: Fügen Sie den folgenden auf die YAML Präambel als Element der obersten Ebene Ausgabe an den pdf/ Unterverzeichnis zu schreiben:

knit: (function(inputFile, encoding) { 
    rmarkdown::render(inputFile, encoding = encoding, output_dir = "pdf") })