2012-06-22 8 views
21

Mi chiedo se sia possibile utilizzare lo markdown knitr per creare semplicemente un report in tempo reale con oggetti derivanti dal mio spazio di lavoro corrente. La riproducibilità non è il problema qui. Leggo anche questo molto bello thread here.C'è un modo per knitr markdown direttamente dal tuo spazio di lavoro usando RStudio?

Ma ho ancora un messaggio di errore che si lamenta che non è stato possibile trovare l'oggetto particolare.

1) Supponiamo di aprire un nuovo documento di markdown e di salvarlo.

2) scrivere un blocco che fa riferimento ad alcuni oggetti lm nell'area di lavoro. chiamare summary(mylmobject)

3) knitr it.

Sfortunatamente il rapporto viene generato ma l'output di regressione non può essere mostrato perché non è stato possibile trovare l'oggetto. Nota, funziona in generale se ho appena salvato l'oggetto su .Rdata e poi lo carico direttamente dal file markdown.

C'è un modo per utilizzare gli oggetti in R markdown che si trovano nello spazio di lavoro corrente? Sarebbe davvero bello mostrare un output ai non R mentre si sta ancora lavorando.

risposta

25

RStudio apre una nuova sessione R per knit() il file R Markdown, quindi gli oggetti nel vostro spazio di lavoro corrente non sarà disponibile per quella sessione (si tratta di due sessioni separate). Due soluzioni:

  1. di file un feature request a RStudio, chiedendo loro di sostenere maglia nella sessione R corrente anziché con la forza di iniziare una nuova sessione;
  2. maglia manualmente da soli: library(knitr); knit('your_file.Rmd') (o knit2html() se si desidera output HTML in un unico passaggio, o rmarkdown::render() se si utilizza R Markdown v2)
+5

Mi sento come se l'opzione 1 fosse contraria al paradigma della ricerca riproducibile. –

+2

@BrandonBertelsen hai ragione, ed è esattamente la ragione per cui RStudio apre una nuova sessione R ogni volta; in confronto, Emacs/ESS chiama Sweave/knitr nella sessione R corrente. Ci sono dei vantaggi nell'usare la sessione R esistente, tuttavia: 1. può essere più veloce; 2. ci aiuta a eseguire il debug del codice (ad esempio, controlla gli oggetti generati dal documento sorgente) –

+0

Curioso di sapere se ci sono stati cambiamenti in Rstudio o Knitr da quando è stato pubblicato nel 2012? –

22

potrebbe essere più facile per risparmiare dati dall'altro sessione utilizzando:

save.image("C:/Users/Desktop/example_candelete.RData") 

e poi caricarlo nel file MD:

load("C:/Users/Desktop/example_candelete.RData") 
+0

in realtà è quello che faccio ora. –

+2

Il problema è che ho una sessione così grande da richiedere un paio di minuti.Ho capito da dove proveniva Rstudio in termini di riproducibilità, ma se vogliamo usare markdown per creare un report presentabile con grandi dati, dobbiamo lavorare a mano manualmente. – Wayne

+0

Puoi scegliere cosa salvare usando save (mylmobject) invece di save.image() –

0

L'0.123.è progettato esattamente per analizzare al volo un documento markdown.

Problemi correlati