【发布时间】:2019-05-02 17:49:19
【问题描述】:
是否可以指示 Rmarkdown 将所有表格默认为我的样式输出?这是我的尝试:
---
title: 'Test Kable Global Styling'
output:
html_document:
df_print: kable
---
```{r}
library(knitr)
library(kableExtra)
kable <- function(data) {
message("YES, IT BITES! (not sortable, but styled.)\n")
knitr::kable(data, digits=3) %>% kable_styling(bootstrap_options = "striped", full_width = F, position = "center")
}
```
## Testing
```{r}
d <- data.frame( x=1:3, y=rnorm(3) )
```
### Explicit Invokation
```{r}
kable(d)
```
### Implicit Invokation Fails
```{r}
d
```
输出如下所示:
[可能与How to set knitr::kable() global options in markdown for reuse有关,但是定义我自己的kable函数还不够Rmarkdown选择它。
感谢神秘用户对上述问题的完整解决更新。唉,它可以概括为:
```{r}
library(knitr)
library(DT); p <- function(...) DT::datatable(...)
knit_print.data.frame <- function(x, ...) asis_output( paste( c("",p(x)) , collapse="\n" ) )
registerS3method("knit_print", "data.frame", knit_print.data.frame)
```
# Test Code
```{r}
d <- data.frame( x=1:3, y=rnorm(3) )
```
## Print
```{r}
p(d)
d
```
done
【问题讨论】:
标签: r-markdown