2014-10-03 2 views
20

Utilizzo la funzione HTMl di RStudio per l'output di alcune presentazioni. Ma invia sempre i file alla mia attuale cartella di lavoro. Come posso farlo uscire in un'altra directory in modo che la mia directory sia pulita con solo i file .rmd originali?R: In RStudio come posso creare l'output di knitr in una cartella diversa per evitare di ingombrare il mio disco?

+6

Avete bisogno di utilizzare il pulsante maglia HTML? Se no, puoi semplicemente fare 'rmarkdown :: render ('my.Rmd', output_file = 'folder/my.html')' – Eric

+0

Vedi anche: https://github.com/ropenscilabs/ezknitr –

risposta

10

Come ha sottolineato Eric nei commenti, se si è disposti a rinunciare alla praticità del pulsante Knit HTML (che produce file HTML che vivono accanto al proprio .Rmd), è possibile chiamare direttamente lo rmarkdown::render.

Tuttavia, se si ha realmente bisogno di personalizzare il flusso di lavoro, è possibile ignorare il Knit HTML tasto per eseguire tutto ciò che tu comandi tramite l'opzione rstudio.markdownToHTML. Questo comando può richiamare rmarkdown con opzioni specifiche (come la directory di output) ed eseguire altre attività di pre-elaborazione o post-elaborazione. Documentazione qui:

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

Si noti che impostando l'opzione rstudio.markdownToHTML si spegnerà alcune delle più recenti funzionalità di integrazione RMarkdown V2 cotto in RStudio, poiché RStudio non sarà più in grado di dedurre che motore viene utilizzato per rendere il documento.

+1

Sono ancora lottando con questo (cercando di avere tutti i file intermediario/risultato andare a '/ output /', e mi piacerebbe usare il pulsante RStudio Potresti fornire un MWE? Sfortunatamente sopra il link rstudio docs è paywalled o qualcosa del genere. – maxheld

7

Il trucco menzionato in Rmarkdown directing output file into a directory ha funzionato per me.

Esempio: Aggiungere il seguente al preambolo YAML come un elemento di livello superiore di scrivere output al pdf/ sottodirectory:

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