2015-08-04 15 views
6

Używam R Markdown w RStudio, aby utworzyć raport, który miesza Markdown i wyjście R. Wiem, jak używać wbudowanych wyrażenia R w Markdown, ale zastanawiam się, jak to zrobić, to znaczy użyj Markdown w kodzie R. Chcę przejrzeć serię obliczeń i uzyskać nagłówki Markdown dla każdego z nich. Chcę nagłówków dla celów formatowania (np. Pogrubione tytuły itp.), A także aby móc określić (pod) sekcje w wynikowym pliku PDF (co jest dobrą cechą sposobu, w jaki RMarkdown obsługuje # i ## itd.).R inline markdown

wiem, że mogę wykonać następujące czynności:

--- 
title: "test" 
output: pdf_document 
--- 

#Section 1 

```{r, echo=FALSE} 
print(1+1) 
``` 

#Section 2 

```{r, echo=FALSE} 
print(2+2) 
``` 

#Section 3 

```{r, echo=FALSE} 
print(3+3) 
``` 

Który daje coś patrząc (mniej więcej) tak:

rozdział 1

## [1] 2

Sekcja 2

## [1] 4

Sekcja 3

## [1] 6

Czy to możliwe, aby osiągnąć taki sam efekt za pomocą czegoś w rodzaju tego:

--- 
title: "test2" 
output: pdf_document 
--- 

```{r, echo=FALSE} 
for (i in 1:3) 
{ 
    print(paste("#Section",i)) 
    print(i+i) 
} 
``` 
+0

'cat (wklej (" # sekcja ", i," \ n "))' powinien zrobić, jeśli ustawisz opcję porcji 'results =" asis "' – scoa

+0

Dzięki scoa, ta produkcja jest nieco ładniejsza, ale nie robi " t osiągnąć to, co chcę: # jest interpretowane jako postać i drukowane, a nie interpretowane jako znacznik Markdown, aby utworzyć nagłówek. –

+0

Przepraszamy, powinieneś dodać dwa "\ n" w paste: 'cat (paste (" # section ", i," \ n \ n "))'. Nagłówki Markdown wymagają wcześniej pustej linii. To samo dla wydruku (i + i): 'cat (wklej (i + i, \ n \ n")) 'powinno załatwić sprawę – scoa

Odpowiedz

3

Jak @scoa wskazał, trzeba ustawić klocek opcja results='asis'. Powinieneś również umieścić dwa \n zarówno przed, jak i po nagłówku.

--- 
title: "test" 
output: pdf_document 
--- 

```{r, echo=FALSE, results='asis'} 
for (i in 1:3) { 
    cat(paste0("\n\n# Section", i, "\n\n")) 
    print(i+i) 
    cat("\n\n\\newpage") 
} 
``` 
+0

Dzięki Christoph. Po krótkiej zabawie zorientowałem się, dlaczego to nie działa - ustawiłem blok kodu w RStudio tak, aby po wklejeniu do StackOverflow pokazywał się jako blok kodu. To przeszkadzało w odczytaniu opcji porcji. Więc, Scoa miała rację - najważniejszą rzeczą było włączenie 'results = 'asis''. Nie jestem pewien, jaka jest tutaj etykieta, ale czuję, że @scoa powinien dostać kredyt - jeśli (s) doda odpowiedź, oznaczę to jako rozwiązanie. –

+0

Jasne, a ja nie chciałem go przekreślić. Pozwól mu napisać odpowiedź i oznaczyć ją jako taką (choć możesz na razie oznaczyć moją odpowiedź jako użyteczną). Twoje zdrowie! – Christoph

0

Jako bardziej ogólnej odpowiedzi, to może być przydatne do spojrzenia na opakowaniu markdownreports który analizuje kod markdown (i wyjście) od zmiennych R.

Powiązane problemy