2014-11-08 2 views
6

Я делаю несколько слайдов внутри Rstudio следующие инструкции здесь: http://rmarkdown.rstudio.com/beamer_presentation_format.htmlФорматирование текста внутри R Код фрагмента

Как определить размер текста, цвета и «поток» следующие числа в двух столбцах?

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

``` 

Выход либо HTML (ioslides) или PDF (Бумер)

Update:

В настоящее время код выше будет только дать что-то вроде следующего

6683209 
1268680 
8412827 
9688104 
6958695 
9655315 
3255629 
8754025 
3775265 
2810182 

I не могут ничего изменить, чтобы изменить размер текста, цвет или поместить его в таблицу. Выходной код R-кода - это просто текст. Может быть, можно поместить их в таблице, действительно, как уже упоминались в этой должности:

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

Но я не знаю, о размере и цвете текста.

Update 2:

Идея ткачество родной HTML-код для вывода R является очень полезным. Я об этом не думал. Однако это работает, только если я хочу вывести HTML. Для вывода в формате PDF я должен сплести собственный латексный код с выходом R. Например, код следующие работы с использованием «knitr PDF» Выход:

```{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("}") 
``` 

ответ

9

Вы используете «ASIS» Результаты =, следовательно, вы можете просто использовать print() и форматирования разметки. Если вы хотите, чтобы ваш текст был красным, просто выполните:

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

Надеюсь, это поможет.

+2

'print' может не работать, но' cat' делает. Я обновил свой вопрос, чтобы отразить ваш ответ. Спасибо, и я решаю присудить вам награду. – biocyberman

3

Звучит так, как будто вы хотите, чтобы выход был либо PDF, либо HTML. Одна из возможностей - xtable. Он создает таблицы в формате PDF или HTML. Однако нет (независимого от вывода) способа указать цвет. Вот пример.

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

Другим вариантом является pandoc.table функция из pander пакета. Вам необходимо установить двоичный файл pandoc. Если у вас есть RStudio, у вас это уже есть. Функция выплевывает некоторую уценку, которая затем может быть преобразована в HTML или PDF на pandoc.

Вот как вы могли использовать это из RStudio. Создайте документ RMarkdown следующим образом:

--- 
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) 
``` 

Когда вы нажимаете «knit HTML», он выплескивает хороший HTML-документ. Если вы измените вывод на pdf_document, он выплюнет хороший PDF-файл. Вы можете редактировать параметры для изменения вывода - например,

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

, и это будет работать как в PDF, так и в формате HTML. (Тем не менее, нет возможности изменить цвет. Задача домашней работы: исправить pandoc.table, чтобы разрешить произвольные цвета.)

Под капотом knitr записывает уценку, а pandoc преобразует уценку в любое удобное для вас время.

+0

В ответе также представлена ​​идея смешивания собственного кода целевого документа (т. Е. HTML/латекс). Спасибо за повторное представление пакета 'xtable' для меня. Но, как вы сказали, часть цветов форматирования не ясна. – biocyberman