# kable

0th

Percentile

##### Create tables in LaTeX, HTML, Markdown and reStructuredText

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.

##### Usage
kable(x, format, digits = getOption("digits"), row.names = NA, col.names = NA, align,
caption = NULL, format.args = list(), escape = TRUE, ...)
##### Arguments
x

An R object, typically a matrix or data frame.

format

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.

digits

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.

row.names

Logical: whether to include row names. By default, row names are included if rownames(x) is neither NULL nor identical to 1:nrow(x).

col.names

A character vector of column names to be used in the table.

align

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.

caption

The table caption.

format.args

A list of arguments to be passed to format() to format table values, e.g. list(big.mark = ',').

escape

Boolean; whether to escape special characters when producing HTML or LaTeX tables.

...

Other arguments (see Examples).

##### Details

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.

##### Value

A character vector of the table source code.

##### Note

The tables for format = 'markdown' also work for Pandoc when the pipe_tables extension is enabled (this is the default behavior for Pandoc >= 1.10).

When using kable() as a top-level expression, you do not need to explicitly print() it due to R's automatic implicit printing. When it is wrapped inside other expressions (such as a for loop), you must explicitly print(kable(...)).

##### References

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.

library(knitr) # 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 # }