如何在rmarkdown中的pdf_document中从htmlTable包中呈现表?

时间:2015-10-16 11:33:21

标签: r pdf r-markdown

在rmarkdown中(在RStudio中)我使用htmlTable包在我的html文档中生成漂亮的表格。现在,我想在渲染pdf文档时获得相同的结果。表格没有正确呈现。我怎样才能让rmarkdown在我的pdf文档中生成表格,就像在我的html中一样?

这是带有表的.Rmd文件的工作示例:

---
title: "test"
output: pdf_document
---

```{r results="asis"}
library(htmlTable)
c1 <- c("test1","test1","test2","test2")
c2 <- c(1,2,3,4)
data_object <- as.data.frame(cbind(c1,c2))
names(data_object) <- c("test","test2")
print(htmlTable(data_object))
```

点击RStudio中的knit pdf。

我的pdf文档中的结果是:

test
library(htmlTable)
c1 <- c("test1","test1","test2","test2")
c2 <- c(1,2,3,4)
data_object <- as.data.frame(cbind(c1,c2))
names(data_object) <- c("test","test2")
print(htmlTable(data_object))
test
test2
1
1
1
2
1
2
3
2
3
4
2
4
1

表格部分的结果应为:

enter image description here

有没有人知道如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

如果您想要PDF输出,则应将R对象转换为

  • LaTeX或
  • 降价

先前有更多格式化选项,但后者更简单,可以进一步转换为HTML或PDF(除了一堆其他格式)。因此,您可能需要尝试htmlTable或更强大的kable包,而不是pander包。

---
title: "test"
output: pdf_document
---

```{r}
library(pander)
data_object <- data.frame(test = paste0('test', 1:4), test2 = 1:4)
pander(data_object)
```

在上述文件中调用rmarkdown::render后产生以下PDF:

enter image description here

答案 1 :(得分:1)

我在 sjPlot::tab_model() html 表中遇到了同样的问题,最终创建了几个函数来提供帮助。

请参阅 Github 存储库 https://github.com/gorkang/html2latex/

在 repo 中,您可以找到带有分步说明的 example.Rmd 文件。它适用于 Ubuntu 20.04 系统。