A custom printing function
The S3 generic function knit_print
is the default printing function in
knitr. The chunk option render
uses this function by default.
The main purpose of this S3 generic function is to customize printing of R
objects in code chunks. We can fall back to the normal printing behavior by
setting the chunk option render = normal_print
.
knit_print(x, ...) normal_print(x, ...)
x |
An R object to be printed |
... |
Additional arguments passed to the S3 method. Currently ignored,
except two optional arguments |
Users can write custom methods based on this generic function. For example,
if we want to print all data frames as tables in the output, we can define a
method knit_print.data.frame
that turns a data.frame into a table (the
implementation may use other R packages or functions, e.g. xtable or
kable()
).
The value returned from the print method should be a character vector
or can be converted to a character value. You can wrap the value in
asis_output()
so that knitr writes the character value
as is in the output.
It is recommended to leave a ...
argument in your method, to
allow future changes of the knit_print()
API without breaking your
method.
See vignette('knit_print', package = 'knitr')
.
library(knitr) # write tables for data frames knit_print.data.frame = function(x, ...) { res = paste(c("", "", kable(x, output = FALSE)), collapse = "\n") asis_output(res) } # register the method registerS3method("knit_print", "data.frame", knit_print.data.frame) # after you define and register the above method, data frames will be printed as # tables in knitr, which is different with the default print() behavior
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.