kable
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 = colnames(x),
align, caption = NULL, escape = TRUE, ...)
Arguments
- x
- an R object (typically a matrix or data frame)
- format
- a character string; possible values are
latex
,html
,markdown
,pandoc
, andrst
; this will be automatically determined if the function is called withinknitr ; it can also be set in - digits
- the maximum number of digits for numeric columns (passed to
round()
); it can also be a vector of lengthncol(x)
to set the number of digits for individual columns - row.names
- a logical value indicating whether to include row names; by
default, row names are included if
rownames(x)
is neitherNULL
nor identical to1:nrow(x)
- col.names
- a character vector of column names to be used in the table
- align
- the alignment of columns: a character vector consisting of
'l'
(left),'c'
(center) and/or'r'
(right); by default, numeric columns are right-aligned, and other columns are left-aligned; ifalign = NULL
, - caption
- the table caption
- escape
- escape special characters when producing HTML or LaTeX tables
- ...
- other arguments (see examples)
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
See Also
Other R packages such as
Examples
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")
# 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
Community examples
kable(head(mtcars), format = "rst", row.names = FALSE)