Як створити кольорові таблиці за допомогою Sweave та xtable? [зачинено]


17

Я використовую Sweave та xtable для створення звіту.

Я хотів би додати трохи фарбування на стіл. Але мені не вдалося знайти жодного способу генерувати кольорові таблиці за допомогою xtable.

Чи є якийсь інший варіант?


що таке кольоровий стіл? Клітини з кольоровим фоном? Текст комірки іншого кольору? В останньому сценарії рішення може обгортати значення відповідними текстовими командами.
mpiktas

Мені потрібно, щоб фон одного ряду був певного кольору. Чи потрібно переписати функцію xtable?
RockScience

1
xtable вже переписаний (або, можливо, попередньо записаний) як функція латексу в пакеті R Hmisc. Особисто я клянусь цим за правильний вигляд столів. Я не перевіряв, чи є в ній місце для фантазійного трюку вставки, описаного нижче, хоча я був би здивований, якщо ні.
сполученийперіор

@Conjugate Ви маєте рацію, хоча це не так прямо, як я б міг подумати; Я оновив свою відповідь на вашу пропозицію.
chl

@chl "не прямо" - це заниження. Ця функція є звіром, хоча і дуже здатною.
кон'югатприор

Відповіді:


20

Хоча я не пробував цього явно з R (я зазвичай після обробки оброблюю таблиці в Latex безпосередньо \rowcolor , \rowcolorsабо colortbl пакет), я думаю , що це було б легко зробити це, граючи з add.to.rowаргументамиprint.xtable()listLАТЕХ команда. Зауважте, що команда додається в кінці зазначених рядків.

Здається, працює, з colortblпакетом. Отже, щось подібне

<<result=tex>>
library(xtable)
m <- matrix(sample(1:10,10), nr=2)
print(xtable(m), add.to.row=list(list(1),"\\rowcolor[gray]{.8} "))
@

дає мені

введіть тут опис зображення

(Це налаштований шаблон Beamer, але це має працювати зі стандартним документом. З Beamer ви, ймовірно, захочете додати tableпараметр під час завантаження пакета.)

Оновлення:

Після пропозиції @ Conjugate, ви також можете покластися на засоби Hmisc для обробкиТЕХвисновок, див. багато варіантів latex()функції. Ось приклад використання:

library(Hmisc)
## print the second row in bold (including row label)
form.mat <- matrix(c(rep("", 5), rep("bfseries", 5)), nr=2, byrow=TRUE)
w1 <- latex(m, rownamesTexCmd=c("","bfseries"), cellTexCmds=form.mat, 
            numeric.dollar=FALSE, file='/tmp/out1.tex')
w1  # call latex on /tmp/out1.tex
## highlight the second row in gray (as above)
w2 <- latex(m, rownamesTexCmd=c("","rowcolor[gray]{.8}"), 
            numeric.dollar=FALSE, file='/tmp/out2.tex')
w2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.