How to render table from htmlTable package in pdf_document in rmarkdown?

大兔子大兔子 提交于 2019-12-07 09:46:28

问题


Within rmarkdown (in RStudio) I use htmlTable package to generate nice looking tables in my html documents. Now I want the same result when rendering a pdf document. The tables aren't rendered properly. How can I let rmarkdown generate tables in my pdf document the same way it does in my html's?

This is a working example of a .Rmd file with a table:

---
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))
```

Click knit pdf in RStudio.

The result in my pdf-document is:

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

The result (of the table part) should be:

Does anyone have an idea about how to solve this?


回答1:


If you want PDF output, you should transform the R object to

  • LaTeX or
  • markdown

The prior has a lot more formatting options, but the latter is a lot simpler and can be converted further to either HTML or PDF (besides a bunch of other formats). So instead of the htmlTable package, you might want to give a try to kable or the more robust pander package:

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

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

Resulting in the following PDF after calling rmarkdown::render on the above document:



来源:https://stackoverflow.com/questions/33169464/how-to-render-table-from-htmltable-package-in-pdf-document-in-rmarkdown

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!