This is a very simple table generator. It is simple by design. It is not intended to replace any other R packages for making tables.
kable(x, format, digits = getOption("digits"), row.names = NA, col.names = NA, align,
caption = NULL, format.args = list(), escape = TRUE, ...)
An R object, typically a matrix or data frame.
A character string. Possible values are latex
,
html
, markdown
, pandoc
, and rst
; this will be
automatically determined if the function is called within knitr; it
can also be set in the global option knitr.table.format
. If
format
is a function, it must return a character string.
Maximum number of digits for numeric columns, passed to
round()
. This can also be a vector of length ncol(x)
, to set
the number of digits for individual columns.
Logical: whether to include row names. By
default, row names are included if rownames(x)
is neither
NULL
nor identical to 1:nrow(x)
.
A character vector of column names to be used in the table.
Column alignment: a character vector consisting of
'l'
(left), 'c'
(center) and/or 'r'
(right). By
default or if align = NULL
, numeric columns are right-aligned, and
other columns are left-aligned. If length(align) == 1L
, the string will be
expanded to a vector of individual letters, e.g. 'clc'
becomes
c('c', 'l', 'c')
, unless the output format is LaTeX.
The table caption.
A list of arguments to be passed to format()
to format table values, e.g. list(big.mark = ',')
.
Boolean; whether to escape special characters when producing HTML or LaTeX tables.
Other arguments (see Examples).
A character vector of the table source code.
Missing values (NA
) in the table are displayed as NA
by
default. If you want to display them with other characters, you can set the
option knitr.kable.NA
, e.g. options(knitr.kable.NA = '')
to
hide NA
values.
See https://github.com/yihui/knitr-examples/blob/master/091-knitr-table.Rnw for some examples in LaTeX, but they also apply to other document formats.
Other R packages such as huxtable, xtable, kableExtra, and tables for HTML and LaTeX tables, and ascii and pander for different flavors of markdown output and some advanced features and table styles.
# NOT RUN { kable(head(iris), format = "latex") kable(head(iris), format = "html") kable(head(iris), format = "latex", caption = "Title of the table") kable(head(iris), format = "html", caption = "Title of the table") # use the booktabs package kable(mtcars, format = "latex", booktabs = TRUE) # use the longtable package kable(matrix(1000, ncol = 5), format = "latex", digits = 2, longtable = TRUE) # add some table attributes kable(head(iris), format = "html", table.attr = "id=\"mytable\"") # reST output kable(head(mtcars), format = "rst") # no row names kable(head(mtcars), format = "rst", row.names = FALSE) # R Markdown/Github Markdown tables kable(head(mtcars[, 1:5]), format = "markdown") # no inner padding kable(head(mtcars), format = "markdown", padding = 0) # more padding kable(head(mtcars), format = "markdown", padding = 2) # Pandoc tables kable(head(mtcars), format = "pandoc", caption = "Title of the table") # format numbers using , as decimal point, and ' as thousands separator x = as.data.frame(matrix(rnorm(60, 1e+06, 10000), 10)) kable(x, format.args = list(decimal.mark = ",", big.mark = "'")) # save the value x = kable(mtcars, format = "html") cat(x, sep = "\n") # can also set options(knitr.table.format = 'html') so that the output is HTML # }