2012-07-21 18 views
17

Mi piace molto usare knitr in Rstudio e lo sto usando per scrivere presentazioni di markdown e analisi dei dati. Voglio utilizzare lo stesso codice e risultati in un foglio e voglio convertire i blocchi di codice nel file Rmd ```{r} nei blocchi di file Rnw << >>= @.Come convertire il file .Rmd nel file .Rnw di Rstudio?

Ciò consente di utilizzare lo stesso documento e il codice scritto per la presentazione anche per la carta principale.

C'è un modo di convertire tra blocchi di codice di markdown e file Rnw?

o l'intero file stesso come a parte la differenza di sintassi dei pezzi di codice, sono abbastanza simili nel markup (convertendo il testo al lattice è facile con il dire Pandoc)

risposta

7

invece di convertire l'intero documento, puoi semplicemente esternare il tuo codice R in modo che possa essere condiviso tra diversi documenti; vedi http://yihui.name/knitr/demo/externalization/

Una volta che avete read_chunk('Rcode.r'), è possibile utilizzare ```{r label} nel vostro Rmd e <<label>>= nel documento Rnw, dove label proviene dalla linea ## @knitr label nello script R.

+0

L'idea di mantenere il codice separato dal file principale è buona. Nel caso in cui sia necessario convertire rapidamente il file Rmd in Rnw o viceversa, è una possibilità? – Anusha

+1

Sembra meraviglioso, ma non ha molto senso per me: https://github.com/yihui/knitr/issues/322 È facile convertire '' '{r} a' <<>> = ', ma che dire il resto dei testi? Devi considerare la possibilità di convertire markdown in LaTeX (viceversa), e pandoc ha già svolto un lavoro imbattibile. –

+0

Sembra che tu stia lavorando su questo come knitExtra. Ho convertito il documento da markdown a latex usando pandoc come menzionato nella domanda. Il compito di convertire blocchi di codice usando regex o sostituendo le stringhe sembrava essere noioso e soggetto a errori. Per favore, dite il modo più semplice per convertire il markup dei chunk? – Anusha