Formats matrices and data frames to report them as tables in R Markdown documents according to APA guidelines.
apa_table(x, ...)# S3 method for default
apa_table(x, ...)
# S3 method for apa_results_table
apa_table(x, escape = FALSE, ...)
# S3 method for apa_results
apa_table(x, ...)
# S3 method for matrix
apa_table(
x,
caption = NULL,
note = NULL,
stub_indents = NULL,
added_stub_head = NULL,
col_spanners = NULL,
midrules = NULL,
placement = "tbp",
landscape = FALSE,
font_size = NULL,
escape = TRUE,
span_text_columns = TRUE,
...,
format.args = NULL
)
# S3 method for list
apa_table(
x,
caption = NULL,
note = NULL,
stub_indents = NULL,
added_stub_head = NULL,
col_spanners = NULL,
midrules = NULL,
placement = "tbp",
landscape = FALSE,
font_size = NULL,
escape = TRUE,
merge_method = "indent",
span_text_columns = TRUE,
...,
format.args = NULL
)
# S3 method for data.frame
apa_table(
x,
caption = NULL,
note = NULL,
stub_indents = NULL,
added_stub_head = NULL,
col_spanners = NULL,
midrules = NULL,
placement = "tbp",
landscape = FALSE,
font_size = NULL,
escape = TRUE,
span_text_columns = TRUE,
...,
format.args = NULL
)
A character vector of the table source code of class knit_asis
, see
knitr::asis_output()
.
Object to print, either a matrix
, data.frame
, or
list
. See details.
Arguments passed on to knitr::kable
format
A character string. Possible values are latex
,
html
, pipe
(Pandoc's pipe tables), simple
(Pandoc's
simple tables), rst
, jira
, and org
(Emacs Org-mode).
The value of this argument will be automatically determined if the function
is called within a knitr document. The format
value 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.
label
The table reference label. By default, the label is obtained
from knitr::opts_current$get('label')
. To disable the label,
use label = NA
.
Logical. If TRUE
special LaTeX characters, such as
%
or _
, in column names, row names, caption, note and table
contents are escaped.
Character. Caption to be printed above the table.
Character. Note to be printed below the table.
List. A named list of vectors that contain indices of rows to indent. The name of each list element containing the vector is used as title for indented sections.
Character. Used as stub head (name of first column)
if row.names = TRUE
is passed to kable
; ignored if
row names are omitted from the table.
List. A named list of vectors of length 2 that contain the indices of the first and last column to span. The name of each list element is used as grouping column name. Currently ignored in Word documents.
Numeric. Vector of line numbers in table (not counting column headings) that should be followed by a horizontal rule; currently ignored in Word documents.
Character. Indicates whether table should be placed, for
example, at the current location (h
), at the top (t
), bottom
(b
), or on a separate page (p
). Arguments can be combined to
indicate order of preference (htb
); currently ignored when
longtable = TRUE
, landscape = TRUE
, and in Word documents.
Logical. If TRUE
the table is printed in landscape
mode; currently ignored in Word documents.
Character. Font size to use for table contents (can be
tiny
, scriptsize
, footnotesize
, small
,
normalsize
(default), large
, Large
, LARGE
,
huge
, Huge
). Ignored in Word documents.
Logical. If TRUE
tables span across text columns
in two-column PDF documents (e.g. when setting classoption: jou
).
Otherwise ignored.
List. A named list of arguments to be passed to
apa_num
to format numeric values.
Character. Determines how to merge tables if x
is
a list
of matrices or data frames with a common structure. Can be either
indent
or table_spanner
. See details.
When using apa_table
, the type of the output (LaTeX or Word) is
determined automatically by the rendered document type. In interactive R
session the output defaults to LaTeX.
If x
is a list
, all list elements are merged by columns into a single
table and the names of list elements are added according to the setting of
merge_method
.
By default, the width of the table is set to accommodate its contents. In
some cases, this may cause the table to exceed the page width. To address
this, tables can be rotated 90 degrees by setting langscape = TRUE
or,
by explicitly using "paragraph columns" with fixed column widths, such
that the contents is automatically broken into multiple lines. For
example, set align = "lm{5cm}l"
to limit the second column to a width of
5 cm. Similarly, to space columns equally use
align = paste0("m{", 1/(ncol(x) + 1), "\\linewidth}")
Note that placement options are not supported in appendices of apa6
documents and will be printed to the document. To omit the printed options
set placement = NULL
.
knitr::kable()
, apa_num()
my_table <- t(apply(cars, 2, function(x) # Create data
round(c(Mean = mean(x), SD = sd(x), Min = min(x), Max = max(x)), 2)
))
apa_table(
my_table
, align = c("l", rep("r", 3))
, caption = "A summary table of the cars dataset."
)
apa_table(
cbind(my_table, my_table)
, align = c("l", rep("r", 8))
, caption = "A summary table of the cars dataset."
, note = "This table was created using apa\\_table()"
, added_stub_head = "Variables"
, col_spanners = list(`Cars 1` = c(2, 5), `Cars 2` = c(6, 9))
)
apa_table(
list(`Cars 1` = my_table, `Cars 2` = my_table)
, caption = "A summary table of the cars dataset."
, added_stub_head = "Variables"
)
Run the code above in your browser using DataLab