2015-01-24 1 views
3

Я пытаюсь понять, как использовать xxtable при создании html-страниц с knitr. Моя основная причина для работы с xtable заключается в том, что я хочу иметь возможность поворачивать имена столбцов и/или имена ростов. Это мой .rmd документ:Показать таблицу html (через xtable) в документе, написанном на knitr

--- 
output: html_document 
--- 

```{r, echo=FALSE} 
library(xtable) 
data(tli) 
tli.table <- xtable(tli[1:10,]) 
align(tli.table) <- "|r|r|lp{3cm}l|r|" 
tt1 <- print(tli.table, rotate.rownames=TRUE, 
      rotate.colnames=TRUE, type = "html") 
``` 

```{r, echo=FALSE, results = 'asis'} 
tt1 
``` 

Когда я вязать этот документ HTML с knit2html, строка и имена столбцов перепутались и HTML-код вторит, а также. Что я делаю не так? (Или есть лучший способ построить красиво выложенные HTML таблиц через knitr?)

+0

Спасибо, @ Грегор, это намного лучше –

ответ

3

Питер, Я также разочарование в связи с нечетным поведением xtable при воссоздании таблицы, которые используются для работы и раньше, но не в новом R Markdow v2 с использованием pandoc для преобразования в html.

Самое большее, что я мог сделать с вашей таблицей, заключалось в том, чтобы сделать ее рендерингом довольно, но не локальное выравнивание столбцов или поворот заголовка столбца. Для этого поместите весь код в один фрагмент r с опцией results='asis'.

Это работало для меня с использованием RStudio 0.98.1103, R версии 3.1.3 (2015-03-09), платформа: x86_64-pc-linux-gnu (64-разрядная версия), работающая под: Ubuntu exact (12.04. 5 LTS), knitr_1.9, rmarkdown_0.5.1 и xtable_1.7-4:

Поскольку вы упоминаете использование knit2html (не доступно для R 3.1.3), попробуйте мой код в вашей установке и посмотрите, работает ли он еще , Если это так, возможно, причина не в том, чтобы получать последние версии.

Использование заголовков Knitr's Kable Заголовки согласуются с выравниванием по умолчанию для выравнивания по правому краю для числовых столбцов и в противном случае с левым выравниванием. Заголовки Xtable всегда центрируются, и я не могу найти вариант для изменения этого поведения.

--- 
output: 
html_document: 
    self_contained: false 
    theme: flatly 
    keep_md: true 
--- 
<style type="text/css"> 
table { max-width: 200%; 
     border: 1px solid #ccc; } 
th { background-color: #000000; 
     color: #ffffff; 
     width: 2.5cm; } 
td { background-color: #dcdcdc } 
</style> 

```{r, echo=FALSE, results = 'asis'} 
library(xtable) 
data(tli) 
tli.table <- xtable(tli[1:10,]) 
align(tli.table) <- "|r|r|lp{3cm}l|r|" 
print(tli.table, 
     rotate.rownames=F, 
     rotate.colnames=F, 
     type="html", 
     include.rownames = F) 
``` 

```{r via kable, echo=FALSE, results='markup'} 
require(knitr) 
kable(tli.table, format = "html", 
     padding = 0, 
     row.names=F, 
     caption = "Via kable") 
``` 
Смежные вопросы