2014-11-08 11 views
6

Robię kilka slajdów wewnątrz Rstudio następujących instrukcji tutaj: http://rmarkdown.rstudio.com/beamer_presentation_format.htmlFormat tekstu wewnątrz kodu R fragmencie

Jak zdefiniować rozmiar tekstu, kolory i „przepływ” następującymi numerami na dwie kolumny?

```{r,results='asis', echo=FALSE} 
rd <- sample(x=1e6:1e7, size = 10, replace = FALSE) 
cat(rd, sep = "\n") 

``` 

wyjściowy jest albo HTML (ioslides) lub PDF (Beamer)

Aktualizacja:

Obecnie powyższy kod będzie jedynie coś jak na poniższym

6683209 
1268680 
8412827 
9688104 
6958695 
9655315 
3255629 
8754025 
3775265 
2810182 

I nie może nic zrobić, aby zmienić rozmiar, kolor lub umieścić tekst w tabeli. Wyjście kodowania R jest po prostu tekstem. Może to jest możliwe, aby umieścić je w tabeli rzeczywiście, jak wspomniano w tym wątku:

http://tex.aspcode.net/view/635399273629833626273734/dynamically-format-labelscolumns-of-a-latex-table-generated-in-rknitrxtable

Ale nie wiem o wielkości tekstu i koloru.

Aktualizacja 2:

Pomysł tkania natywnego kodu HTML do wyjścia R jest bardzo przydatna. Nie pomyślałem o tym. Działa to jednak tylko wtedy, gdy chcę wyprowadzać HTML. W przypadku plików wyjściowych w formacie PDF muszę wyposażyć natywny kod Latex w wyjście R. Na przykład, kod następujące prace techniką „knitr PDF” wyjście:

```{r,results='asis', echo=FALSE} 
cat("\\textcolor{blue}{") 
rd <- sample(x=1e6:1e7, size = 10, replace = FALSE) 
for (n in rd) { 
cat(paste0(n, '\\newline \n')) } 
cat("}") 
``` 

Odpowiedz

9

Używasz „Asis” results =, a więc można po prostu użyć print() i formatowania znaczników. Jeśli chcesz, aby tekst był czerwony, po prostu wykonaj:

```{r,results='asis', echo=FALSE} 
print("<div class='red2'>") 
rd <- sample(x=1e6:1e7, size = 10, replace = FALSE) 
cat(rd, sep = "\n") 
print("</div>") 
``` 

Mam nadzieję, że pomoże.

+2

'print' może nie działać, ale' cat' ma. Zaktualizowałem moje pytanie, aby odświeżyć twoją odpowiedź. Dzięki i postanawiam przyznać ci nagrodę. – biocyberman

3

Brzmi to tak, jakbyś chciał, aby dane wyjściowe były w formacie PDF lub HTML. Jedną z możliwości jest pakiet xtable. Tworzy tabele w formacie PDF lub HTML. Jednak nie istnieje żaden (niezależny od produkcji) sposób określania koloru. Oto przykład.

xt <- xtable(data.frame(a=1:10)) 
print(xt, type="html") 
print(xt) # Latex default 

Inną opcją jest funkcja pandoc.table z pakietu pander. Potrzebujesz zainstalowanego pliku binarnego pandoc. Jeśli masz RStudio, już to masz. Funkcja wypluwa niektóre obniżki, które następnie można przekonwertować na HTML lub PDF przez pandoc.

Oto, jak można to wykorzystać z RStudio. Utwórz następujący przykład:

--- 
title: "Untitled" 
author: "You" 
date: "20 November 2014" 
output: html_document 
--- 


```{r, results='asis'} 
library(pander) 
tmp <- data.frame(a=1:10,b=1:10) 
pandoc.table(tmp) 
``` 

Po kliknięciu "knit HTML", wypluje ładny dokument HTML. Jeśli zmienisz wynik na pdf_document, wypluje ładny plik PDF. Możesz edytować opcje zmiany wyników - np.

pandoc.table(tmp, emphasize.strong.rows=c(2,4,6,8,10)) 

i będzie działać zarówno w formacie PDF, jak i HTML. (Nadal nie ma opcji zmiany koloru, zadanie zadania domowego: poprawienie pandoc.table, aby umożliwić dowolne kolory.)

Pod maską, knitr zapisuje przecenę, a pandoc konwertuje przecenę na dowolną.

+0

Twoja odpowiedź wprowadza także pomysł mieszania kodu natywnego dokumentu docelowego (np. HTML/Latex). Dziękuję za ponowne wprowadzenie pakietu 'xtable'. Ale jak powiedziałeś, część formatowania kolorów nie jest jasna. – biocyberman

Powiązane problemy