无法通过 knitr2html 使用 kable / kableExtra table
can't get nice table with kable / kableExtra with knitr2html
我正在使用 knit2html 从 R 代码生成 html 报告。
一直在尝试使用 kable / kableExtra 将 table 打印出来,但似乎不起作用。
我将使用这个简单的程序来演示,所有尝试打印出 table 生成的打印结果都非常粗糙,而不是像我在某些教程中看到的那样(例如 https://cran.r-project.org/web/packages/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:
我是不是漏掉了什么?
也许 knit2html
没有引入 bootstrap?
如果你从 markdown 本身渲染,你会从 kable_styling
:
得到漂亮的 table
```{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()
```
使用 rmarkdown::render()
而不是 knitr::knit2html()
。后者早就应该退休了,而且几乎只是出于历史原因而存在。具体来说,rmarkdown::render()
调用Pandoc转换Markdown输出,knitr::knit2html()
调用markdown包。有关详细信息,请参阅 this article。
我正在使用 knit2html 从 R 代码生成 html 报告。
一直在尝试使用 kable / kableExtra 将 table 打印出来,但似乎不起作用。
我将使用这个简单的程序来演示,所有尝试打印出 table 生成的打印结果都非常粗糙,而不是像我在某些教程中看到的那样(例如 https://cran.r-project.org/web/packages/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:
我是不是漏掉了什么?
也许 knit2html
没有引入 bootstrap?
如果你从 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()
```
使用 rmarkdown::render()
而不是 knitr::knit2html()
。后者早就应该退休了,而且几乎只是出于历史原因而存在。具体来说,rmarkdown::render()
调用Pandoc转换Markdown输出,knitr::knit2html()
调用markdown包。有关详细信息,请参阅 this article。