2014-07-21 18 views
8

Questa domanda è un corollario dei miei tentativi di ottenere una certa esperienza con la creazione di report riproducibili da R Markdown documenti tramite knitr e pacchetti R. Mentre sembra che la conversione è automatizzato .Rmd => HTML dall'interno RStudio (Knit HTML pulsante), il mio tentativo di fare lo stesso al di fuori del RStudio (Rscript -e 'library(rmarkdown); render("knitr-example-slides-1.Rmd")') non riuscito a causa, secondo il messaggio, la mancanza di pandoc sul mio sistema. Questo è probabilmente falso, poiché RStudio in qualche modo è riuscito a eseguire la conversione. Pertanto, è molto probabile un accesso e/o il problema del percorso.Problemi con l'installazione su Ubuntu Pandoc 14.04LTS per l'utilizzo con R Markdown

Senza la conoscenza di dove RStudio mantiene pandoc e dettagli circa l'accesso, ho deciso di installare pandoc me stesso. Purtroppo, sudo apt-get install pandoc non è stato molto utile, a causa del fatto che la versione corrente di pandoc in trusty repository di Ubuntu (14.04LTS) è 1.12.2.1. In base al messaggio , è richiesta la versione 1.12.3 o successiva. "Non è un grosso problema", ho pensato, e seguito le istruzioni su come installare pandoc in caso di troppo vecchia versione repository (http://johnmacfarlane.net/pandoc/installing.html). Ciò richiede l'installazione della piattaforma di Haskell, che è abbastanza grande e quale uscita è piuttosto dettagliato. Dopo qualche tempo, ho finalmente è stato accolto con il seguente messaggio di errore :

[ 6 of 57] Compiling Text.Pandoc.Readers.TeXMath (src/Text/Pandoc/Readers/TeXMath.hs, dist/build/Text/Pandoc/Readers/TeXMath.o) 

src/Text/Pandoc/Readers/TeXMath.hs:30:38: 
    Ambiguous occurrence `readTeXMath' 
    It could refer to either `Text.Pandoc.Readers.TeXMath.readTeXMath', 
          defined at src/Text/Pandoc/Readers/TeXMath.hs:56:1 
          or `Text.TeXMath.readTeXMath', 
          imported from `Text.TeXMath' at src/Text/Pandoc/Readers/TeXMath.hs:33:1-19 
          (and originally defined in `Text.TeXMath.Parser') 
Failed to install pandoc-1.12.4.2 
cabal: Error: some packages failed to install: 
pandoc-1.12.4.2 failed during the building phase. The exception was: 
ExitFailure 1 
pandoc-citeproc-0.3.1 depends on pandoc-1.12.4.2 which failed to install. 

In primo luogo, io non sono sicuro di come risolvere esso. In secondo luogo, ho molto sospetto che ci dovrebbe essere un modo più semplice per godersi la generazione di report riproducibili con e pandoc di questo. Il tuo consiglio sarà apprezzato!

UPDATE (vedi commenti):

Rscript -e 'library(rmarkdown); render("knitr-example-slides-1.Rmd")' 


processing file: knitr-example-slides-1.Rmd 
    |.......               | 11% 
    ordinary text without R code 

    |..............             | 22% 
label: setup (with options) 
List of 1 
$ include: logi FALSE 

Quitting from lines 6-8 (knitr-example-slides-1.Rmd) 
Error in eval(expr, envir, enclos) : object 'opts_chunk' not found 
Calls: render ... handle -> withCallingHandlers -> withVisible -> eval -> eval 

Execution halted 
+4

Una versione binaria compilata di Pandoc è già fornita con RStudio, quindi è possibile semplicemente creare un collegamento simbolico, in modo da poterlo utilizzare facilmente al di fuori dell'ecosistema RStudio: https://github.com/rstudio/rmarkdown/ blob/master/PANDOC.md # più recenti sistemi-debianubuntufedora – daroczig

+0

@daroczig: Awesome, la ringrazio per la risposta chiara e veloce! Sapevo che ci dovrebbe essere un modo più semplice ... :-). Proverò a riportare qui. –

+0

Bene, ho seguito le istruzioni per RStudio Server. Ma, un tentativo di elaborare un esempio di file '.Rmd' (https: // github.com/yihui/knitr-examples/blob/master/009-slides.Rmd) non sono riusciti come mostrato in UPDATE sopra. Qualche idea? (Comprendo che si tratta di un problema diverso da quello originale, ma probabilmente non vale la pena di creare una domanda separata.) –

risposta

6

In sostanza, @daroczig risposto a questa domanda nel suo commento di cui sopra, quindi mi ripeterlo qui, oltre a aggiungerà una risposta alla domanda relativa minore sulla il problema, apparso dopo la correzione del problema della domanda principale.

1) "Una versione binaria compilata di Pandoc è già fornito con RStudio, in modo da poter semplicemente creare un link simbolico, in modo che si potrebbe facilmente utilizzare che al di fuori del RStudio eco-sistema: https://github.com/rstudio/rmarkdown/blob/master/PANDOC.md#newer-systems-debianubuntufedora";

2) Ho fissato l'errore, sperimentato dopo l'applicazione del consigli di cui sopra (vedi il mio commento), chiamando opts_chunk() utilizzando esplicito riferimento pacchetto: knitr::opts_chunk(), seguendo le linee guida qui: http://rmarkdown.rstudio.com/authoring_migrating_from_v1.html (grazie a @Yihui per me che punta a questo documento in un'altra domanda: Transitioning research project to knitr-based setup).

+1

Siete invitati ad accettare la vostra risposta. –

+1

@Yihui: Grazie! Sto solo aspettando - SO ha 2 giorni di tempo di attesa finché non si può accettare la sua risposta :-). Ti sarei grato se potessi esprimere la tua opinione o indicarmi risorse rilevanti sugli approcci per l'utilizzo di 'knitr' e' R Markdown' per progetti complessi multi-file/multi-directory (tema principale della mia domanda: http: // stackoverflow.com/questions/24848303/transitioning-research-project-to-knitr-based-setup). –

Problemi correlati