当前位置: 首页 > 工具软件 > knitr > 使用案例 >

html 数据钩子,使用R-markdown knitr钩子在HTML报告中自定义格式表

龙兴学
2023-12-01

我正在尝试设置一个在我的HTML报告中knitr::knit_hooks()自动格式化R-markdown块的数据框输出kableExtra.

我想不要在每个表格数据块的末尾重复添加以下行(或任何行):

head(iris) %>%

kable("html") %>%

kable_styling("hover", full_width = FALSE)

我想出了一个基于这个答案的解决方案,它通过评估块源来实现(请参阅下面的答案,其中包括我对此方法的一些问题); 我希望使用块输出可能有更好的解决方案.

这是一个示例.Rmd,概述了我想要实现的目标.

---

title: "Untitled"

author: "Paul"

date: "25 September 2018"

output: html_document

---

```{r setup, include = F}

library(dplyr)

library(kableExtra)

library(knitr)

data(iris)

default_source_hook

knit_hooks$set(

output = function(x, options) {

x %>%

kable("html") %>%

kable_styling("hover", full_width = FALSE)

},

source = function(x, options) {

if(is.null(options$table))

default_source_hook(x, options)

else {

eval(parse(text = x)) %>%

kable("html") %>%

kable_styling("hover", full_width = F)

}}

)

```

Desired chunk input:

```{r test, echo = F}

head(iris)

```

Desired output will look like:

```{r output, echo = F}

head(iris) %>%

kable("html") %>%

kable_styling("hover", full_width = FALSE)

```

Solution using the source chunk output:

```{r table_format, results = "hide", table = T, eval = F}

head(iris)

```

谢谢.

 类似资料: