xtable thead в выводе html

Я использую xtable в R с knitr для создания красивых таблиц. Я хотел бы использовать CSS, который делает нас <thead>.

Проблема в том, что с xtable я получаю <th>, обернутый в <tr>, но больше ничего, поэтому HTML-код из таблиц RMarkdown и xtables выглядит по-разному.

Я могу изменить css, но я бы не хотел, так как он используется и для других целей - особенно мне хотелось бы использовать тот же CSS с таблицами RMarkdown, что и для xtable-tables.

Вот мой код (в test.Rmd)

```{r, comment=NA, results="asis", tidy=TRUE, echo=TRUE, message=FALSE, warning=FALSE}
require(xtable)
options(xtable.type = 'html')
xtable( mtcars )
```

| Lorem ipsum dolor sit amet. | Lorem ipsum dolor sit amet. |
|-----------------------------|-----------------------------|
| Lorem ipsum dolor sit amet. | Lorem ipsum dolor sit amet. |

Затем я бегу

Rscript -e "library(knitr); knit2html('test.Rmd')"

который создает «test.md», в котором заголовок таблицы выглядит следующим образом:

<!-- html table generated in R 3.1.1 by xtable 1.7-3 package -->
<!-- Wed Sep 17 09:53:11 2014 -->
<TABLE border=1>
<TR> <TH>  </TH> <TH> mpg </TH> <TH> cyl </TH> <TH> disp </TH> <TH> hp </TH> <TH> drat </TH> <TH> wt </TH> <TH> qsec </TH> <TH> vs </TH> <TH> am </TH> <TH> gear </TH> <TH> carb </TH>  </TR>

Однако я хотел бы получить что-то вроде того, что сгенерировано из приведенной выше таблицы RMarkdown.

<table><thead>
<tr>
<th>Lorem ipsum dolor sit amet.</th>
<th>Lorem ipsum dolor sit amet.</th>
</tr>
</thead><tbody>
<tr>
<td>Lorem ipsum dolor sit amet.</td>
<td>Lorem ipsum dolor sit amet.</td>
</tr>
</tbody></table>

Вопрос Как добавить <thead> и <tbody> в вывод xtable, чтобы выровнять таблицы RMarkdown и xtablesx?


person bytesinflight    schedule 17.09.2014    source источник
comment
Вы пробовали использовать knitr::kable? Если я правильно понимаю, вы просто ищете html с красивым отступом (например, ваш пример Lorem ipsum), и kable должен предоставить это, если только вам не нужен xtable для чего-то конкретного.   -  person cdeterman    schedule 07.10.2014
comment
На самом деле kable(mtcars, format = "html") включает теги <thead> и <tbody>.   -  person nograpes    schedule 07.10.2014


Ответы (1)


Используйте kable вместо xtable, чтобы получить описанный вами вывод:

```{r, comment=NA, results="asis", tidy_source=TRUE, echo=TRUE, message=FALSE, warning=FALSE}
require(knitr)
kable( mtcars, format="html")
```

| Lorem ipsum dolor sit amet. | Lorem ipsum dolor sit amet. |
|-----------------------------|-----------------------------|
| Lorem ipsum dolor sit amet. | Lorem ipsum dolor sit amet. |
person cdeterman    schedule 07.10.2014
comment
Вау, не могу поверить, что пропустил кабель! Лучше, чем ожидалось, большое спасибо! - person bytesinflight; 08.10.2014
comment
@bytesinflight, я рад, что смог помочь. Если вы довольны ответом, не могли бы вы также присудить награду? - person cdeterman; 08.10.2014