I would like to set the "pander" function as an alternative "print" function for when compiling knitr rmarkdown documents. Like this (Example of code to run in R):
require(pander)
print <- function(...) pander(..., style = "rmarkdown") # makes sure that everyhing that everyprint will pass through pander
summary(cars)
This will result in:
> summary(cars)
----------------------------------
speed dist
------ ------------ --------------
**** Min. : 4.0 Min. : 2.00
**** 1st Qu.:12.0 1st Qu.: 26.00
**** Median :15.0 Median : 36.00
**** Mean :15.4 Mean : 42.98
**** 3rd Qu.:19.0 3rd Qu.: 56.00
**** Max. :25.0 Max. :120.00
----------------------------------
This way, I will get all of the tables well formatted, instead of manually needing to write "pander" all across the document (imagine I had to write "summary(car) 20 times in the document, changing "print" will save me writing pander(summary(car)) ).
Is that possible? (or is there a smarter way I'm unaware of?)
Thanks.
Update: example for an .rmd file:
TEST
====
```{r}
require(pander)
print <- function(...) pander(..., style = "rmarkdown") # makes sure that everyhing that everyprint will pass through pander
summary(cars)
```
```{r, eval=FALSE}
library(knitr)
knit2html("test.rmd") # http://stackoverflow.com/questions/10646665/how-to-convert-r-markdown-to-html-i-e-what-does-knit-html-do-in-rstudio-0-9
# http://quantifyingmemory.blogspot.co.il/2013/02/reproducible-research-with-r-knitr.html
```
While the output test.md is:
TEST
====
```r
require(pander)
print <- function(...) pander(..., style = "rmarkdown") # makes sure that everyhing that everyprint will pass through pander
summary(cars)
```
```
## speed dist
## Min. : 4.0 Min. : 2
## 1st Qu.:12.0 1st Qu.: 26
## Median :15.0 Median : 36
## Mean :15.4 Mean : 43
## 3rd Qu.:19.0 3rd Qu.: 56
## Max. :25.0 Max. :120
```
```r
library(knitr)
knit2html("test.rmd") # http://stackoverflow.com/questions/10646665/how-to-convert-r-markdown-to-html-i-e-what-does-knit-html-do-in-rstudio-0-9
#
# http://quantifyingmemory.blogspot.co.il/2013/02/reproducible-research-with-r-knitr.html
```
You use results="hide" to hide the results/output (but here the code would still be displayed). You use include=FALSE to have the chunk evaluated, but neither the code nor its output displayed.
knitr is an engine for dynamic report generation with R. It is a package in the programming language R that enables integration of R code into LaTeX, LyX, HTML, Markdown, AsciiDoc, and reStructuredText documents. The purpose of knitr is to allow reproducible research in R through the means of literate programming.
The first code chunk: ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` is used to specify any global settings to be applied to the R Markdown script. The example sets all code chunks as “echo=TRUE”, meaning they will be included in the final rendered version.
You need to selectively overrule the print method for the object class you want to print with pander. Do methods(pander)
to figure out what is available. Some methods are not exported, so you will have to use :::
to access them. Here is a simple example.
TEST
====
```{r cache = F, comment = NA}
print.lm <- pander:::pander.lm
lm(mpg ~ wt, data = mtcars)
```
Output
TEST
====
```r
print.lm <- pander:::pander.lm
lm(mpg ~ wt, data = mtcars)
```
```
--------------------------------------------------------------
Estimate Std. Error t value Pr(>|t|)
----------------- ---------- ------------ --------- ----------
**(Intercept)** 37.29 1.878 19.86 8.242e-19
**wt** -5.344 0.5591 -9.559 1.294e-10
--------------------------------------------------------------
Table: Fitting linear model: mpg ~ wt
```
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With