3

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

一直在尝试使用 kable / kableExtra 来很好地打印表格,但似乎不起作用。

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

R程序:

#!/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')

rmd文件:

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

结果 html 的屏幕截图:

在此处输入图像描述

我在这里错过了什么吗?

4

2 回答 2

2

使用rmarkdown::render()而不是knitr::knit2html(). 后者应该早就退休了,而且几乎只是出于历史原因而存在。具体来说,rmarkdown::render()调用 Pandoc 转换 Markdown 输出,并knitr::knit2html()调用markdown包。有关更多信息,请参阅本文

于 2017-12-07T02:44:01.670 回答
0

也许knit2html没有引入引导程序?

如果您从降价本身渲染,您会从以下位置获得漂亮的表格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()
``` 
于 2017-12-06T22:05:47.947 回答