'Any way to set rmarkdown::paged_table() as the deafult way to printing table?

I have seen a tutorial by which one can change the way tables are printed to knitr::kable() format. Is it possible to do the same with the rmarkdown::paged_table() format, so that all tables by default will be printed in paged_table() format as in the {rmarkdown} package in R?



Solution 1:[1]

Put this in the yaml.

output:
  html_document: 
    df_print: paged

Solution 2:[2]

To complete the answer shared above, here are several ways to achieve this

Using a printing function for knitr

For paged table this would be this function: (which is used internally by rmarkdown for the df_print feature)

paged_print <- function(x, options) {
  knitr::asis_output(
    rmarkdown:::paged_table_html(x, options = attr(
      x,
      "options"
    )),
    meta = list(dependencies = rmarkdown::html_dependency_pagedtable())
  )
}

This is similar to the function in the other answer, it is just that rmarkdown:::knit_print.data.frame does more than juts handling paged tables.

Then you could register it in a document so that it is applied by default for any data.frame printing.

registerS3method(
  "knit_print", "data.frame", paged_print,
  envir = asNamespace("knitr")
)

or use it on chunk basis where you need to print a data.frame in a single value chunk. (

```{r, render = paged_print}
iris
```

More on custom printing method for knitr its vignette

Using option hooks for knitr

A df_print chunk option can also be simulated this way using a option hook

knitr::opts_hooks$set(df_print = function(options) {
  if (options$df_print == "paged") {
    options$render = paged_print
  }
  options
})

this will allow something like

```{r, df_print = "paged"}
iris
```

```{r}
iris
```
  • First table will be shown as paged table
  • Second table will be show as usual data.frame

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Vishal Katti
Solution 2 cderv