【问题标题】:How to render table from htmlTable package in pdf_document in rmarkdown?如何从 rmarkdown 的 pdf_document 中的 htmlTable 包中呈现表格?
【发布时间】:2016-01-15 03:31:14
【问题描述】:

在 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

(表格部分的)结果应该是:

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

【问题讨论】:

标签: r pdf r-markdown


【解决方案1】:

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

  • LaTeX 或
  • 降价

前者有更多格式选项,但后者更简单,可以进一步转换为 HTML 或 PDF(除了一堆其他格式)。因此,您可能想尝试kable 或更强大的pander 包,而不是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:

【讨论】:

  • 感谢您的回答。我会尝试迎合,虽然这不是我具体答案的答案。你确定没有办法在渲染 pdf 之前将我的 html 更改为 markdown?
  • 当然有:您可以使用例如pandoc(与 RStudio/rmarkdown/pander 使用相同的文档转换器从 markdown 生成 HTML/PDF 文件)将 HTML 转换为 PDF:@ 987654322@ -- 但它用于 HTML 文件而不是代码块。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2017-11-16
    • 1970-01-01
    相关资源
    最近更新 更多