2013-02-10 9 views
9

E 'abbastanza banale per caricare gli script R esterni come da this R Sweave example:È possibile chiamare uno script R esterno da R markdown (.Rmd) in RStudio?

<<external-code, cache=FALSE>>= 
read_chunk('foo-bar.R') 
@ 

Lo stesso può essere fatto per R Markdown?

+0

@DirkEddelbu ettel AFAIK, questa domanda specifica non ha avuto risposta prima, e poiché conosco la risposta, [sono incoraggiato a rispondere autonomamente] (http://meta.stackexchange.com/questions/12513/should-i-not-answer -my-own-domande). – opyate

+0

Una volta, forse. Per due volte, diventa sospettoso. –

+6

@DirkEddelbuettel Perché sospettoso? SO è un sito di domande e risposte in cui è incoraggiata la risposta alla tua domanda. Se qualcuno ha una domanda, cerca SO e non riesce a trovare una risposta, ma trova la risposta con le proprie ricerche, dovremmo essere felici che ritornino qui per fornire quella risposta per gli altri con la stessa domanda in seguito. –

risposta

14

Sì.

Mettete questo nella parte superiore del vostro R file di Markdown:

```{r setup, echo=FALSE} 
opts_chunk$set(echo = FALSE, cache=FALSE) 
read_chunk('../src/your_code.R') 
``` 

delimitare il codice con i seguenti suggerimenti per knitr (proprio come fa @yihui nella example):

## @knitr part1 
plot(c(1,2,3),c(1,2,3)) 

## @knitr part2 
plot(c(1,2,3),c(1,2,3)) 

In il tuo file R Markdown, ora puoi avere gli snippet valutati in linea:

Title 
===== 

Foo bar baz... 

```{r part1} 
``` 

More foo... 

```{r part2} 
``` 
+0

Siamo spiacenti, @opyate, lo sai, è possibile utilizzare suggerimenti di più parole (come '# @knitr part one')? Dopo alcuni test presumo che non sia possibile, ma potrebbe essere che mi manca qualcosa ... –

+0

Al momento non sono impostato per testare questo suggerimento, ma prova a metterli su due linee separate? – opyate

+0

Cosa intendi? Non è un problema mettere un'altra parola su un'altra linea. Ma knitr riconosce solo una parola come mi sembra ... (Il punto è che ho già commenti nel mio file che dividono quel file in sezioni e per non moltiplicare le entità stavo pensando di riutilizzare anche quei commenti esistenti con knitr ... Ma sfortunatamente non sembra funzionare :)). –