2015-06-30 8 views
8

Konsola R: Po wywołaniu source("file_of_functions.R",echo=TRUE), wszystkie wyrazy plików źródłowych, w tym komentarze, zostaną wydrukowane na konsoli.Funkcja R, knitr i source: Zachowanie komentarzy do pliku źródłowego dla raportu html

Dzianiny HTML: Po umieszczeniu source("file_of_functions.R",echo=TRUE) w kawałku i przydziernika do html, to samo wyjście drukuje z wyjątkiem komentarzy.

Dla przejrzystości mojego kodu i raportu, chciałbym, aby komentarze z pliku źródłowego zostały uwzględnione w raporcie HTML.

Wszelkie sugestie?

Podstawowe przykład: Zapisz poniższe jako FR:

# function to add a number to itself 
f <- function(x) x+x 
f(2) 

W konsoli, wywołanie source("f.R",echo=TRUE) drukuje:

#function to add a number to itself 
> f <- function(x) x+x 
> f(2) 
> [1] 4 

Kiedy dziewiarskich do html, połączenie

```{r} 
source("f.R",echo=TRUE) 
``` 

daje takie same wyniki, ale bez komentarza.

+0

'źródło (..., keep.source = TRUE') działa? – rawr

+0

Tak, dziękuję. –

Odpowiedz

4

test.Rmd

--- 
output: html_document 
--- 

```{r} 
options(prompt = '> ') 
``` 

```{r} 
source('./test.r', echo = TRUE) 
``` 

```{r} 
source('./test.r', echo = TRUE, keep.source = TRUE) 
``` 

enter image description here

+0

Ta odpowiedź działa dobrze. Dla dobra innych osób z tym samym pytaniem, proszę również zwrócić uwagę na eleganckie rozwiązanie @ Yihui poniżej. –

8

Nie chcę aby umieścić to jako odpowiedź, ale po prostu chce zwrócić uwagę na możliwość, że można łatwo wstawić test.r do fragmentu kodu stosując

```{r code=readLines('test.r')} 
``` 

Osobiście myślę, że to jest o wiele ładniejszy niż przy użyciu source(), np domyślnie nie otrzymujesz podpowiedzi > (możesz, jeśli chcesz), a kod R będzie podświetlony składni. Oczywiście twoje komentarze zostaną zachowane.

+0

Jest to bardzo przydatne. Dwa pytania: (1) Czy nadal jest to zalecany sposób na zrobienie tego? (2) Być może powinien on występować w oficjalnych dokumentach dziewiarskich? (Może tak jest). –

+0

1. Tak. 2. Zapraszam do zaproponowania jakichkolwiek zmian w dokumentach poprzez kliknięcie przycisku edycji (na którejkolwiek z moich stron internetowych): https://yihui.name/knitr/options/ –

Powiązane problemy