无法通过knitr2html与kable / kableExtra获得漂亮的表格

时间:2017-12-06 21:53:11

标签: r knitr kableextra kable

我正在使用knit2html从R代码生成HTML报告。

一直试图使用kable / kableExtra来很好地打印表格,但似乎没有用。

我将使用这个简单的程序来演示,所有尝试打印出来的表都会产生相当粗糙的打印而不是很好的打印输出,就像我在一些教程中看到的那样(例如https://cran.r-project.org/web/packages/kableExtra/vignettes/awesome_table_in_html.html

R程序:

#import "JSQMessages.h"

Rmd档案:

#!/usr/bin/Rscript

library(data.table)
library(knitr)
library(kableExtra)

test_data=data.table(a=c(1,2,3,4,5),
                     b=rep('a', 5),
                     c=rep(2.0, 5),
                     d=rep('a', 5),
                     e=rep(2.0, 5),
                     f=rep('a', 5),
                     g=rep(2.0, 5))

knit2html('test.Rmd')

结果html的屏幕截图:

enter image description here

我在这里错过了什么吗?

2 个答案:

答案 0 :(得分:1)

使用rmarkdown::render()代替knitr::knit2html()。后者应该很久以前就退休了,并且只是出于历史原因而存在。具体来说,rmarkdown::render()调用Pandoc转换Markdown输出,knitr::knit2html()调用降价包。有关详细信息,请参阅this article

答案 1 :(得分:0)

也许knit2html没有引入自举?

如果从markdown本身进行渲染,则可以从kable_styling得到漂亮的表:

```{r echo=FALSE}
library(data.table)
library(knitr)
library(kableExtra)

test_data=data.table(a=c(1,2,3,4,5),
                     b=rep('a', 5),
                     c=rep(2.0, 5),
                     d=rep('a', 5),
                     e=rep(2.0, 5),
                     f=rep('a', 5),
                     g=rep(2.0, 5))
```

```{r testprint1, echo=FALSE}
test_data
```
```{r testprint2, echo=FALSE}
kable(test_data)
```
```{r testprint3, echo=FALSE}
test_data %>% kable("html")
```                  
```{r testprint4, echo=FALSE}
test_data %>% kable("html") %>% kable_styling()
```