我想弄清楚在使用 knitr 创建 html 页面时如何使用 xtable。 我使用 xtable 的主要原因是因为我希望能够轮换列名和/或行名。 这是我的 .rmd 文件:
---
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
```
当我使用 knit2html
将此文档编织成 html 时,行名和列名被弄乱了,并且 html 代码也被回显了。我究竟做错了什么? (或者是否有更好的方法通过 knitr 构建布局精美的 html 表格?)
最佳答案
彼得,
我也对 xtable
的奇怪行为感到沮丧,该行为以前可以工作但在新的 R Markdow v2
中使用 pandoc
重新创建表转换为 html。
我能对您的表格做的最多的事情就是让它呈现漂亮但没有局部列对齐或列标题旋转。为此,将所有代码放在一个 r block 中,并使用选项 results='asis'
。
这对我有用 RStudio 0.98.1103,R 版本 3.1.3 (2015-03-09),平台:x86_64-pc-linux-gnu(64 位),运行于:Ubuntu precise (12.04.5) LTS)、knitr_1.9、rmarkdown_0.5.1 和 xtable_1.7-4:
既然你提到使用 knit2html(不适用于 R 3.1.3),请在你的安装中尝试我的代码,看看它是否仍然有效。 如果是这样,这可能是尚未获取最新版本的原因。
使用 Knitr 的 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")
```
关于r - 在 knitr 支持的文档中显示 html 表(通过 xtable),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28131043/