stat_fmt_tb {ggpp} | R Documentation |
Select and slice a tibble nested in data
Description
stat_fmt_tb
selects, reorders and/or renames columns and
or rows of a tibble nested in data
. It can also apply user supplied
functions to data columns. This stat is intended to be used to pre-process
tibble
objects mapped to the label
aesthetic before adding
them to a plot with geom_table
.
Usage
stat_fmt_tb(
mapping = NULL,
data = NULL,
geom = "table",
tb.vars = NULL,
tb.rows = NULL,
tb.funs = list(),
digits = 3,
position = "identity",
table.theme = NULL,
table.rownames = FALSE,
table.colnames = TRUE,
table.hjust = 0.5,
parse = FALSE,
na.rm = FALSE,
show.legend = FALSE,
inherit.aes = TRUE,
...
)
Arguments
mapping |
The aesthetic mapping, usually constructed with
|
data |
A layer specific dataset - only needed if you want to override the plot defaults. |
geom |
The geometric object to use display the data |
tb.vars , tb.rows |
character or numeric vectors, optionally named, used to select and/or rename the columns or rows in the table returned. |
tb.funs |
named list of functions to be applied to |
digits |
integer indicating the number of significant digits to be
retained in data. Use |
position |
The position adjustment to use for overlapping points on this layer |
table.theme |
NULL, list or function A 'gridExtra' |
table.rownames , table.colnames |
logical flag to enable or disabling printing of row names and column names. |
table.hjust |
numeric Horizontal justification for the core and column headings of the table. |
parse |
If |
na.rm |
a logical indicating whether |
show.legend |
logical. Should this layer be included in the legends?
|
inherit.aes |
If |
... |
other arguments passed on to |
Details
One or more functions to be applied can be passed in a named list to parameter 'tb.funs'. Functions are matched by name to columns, after column selection and renaming have been applied.
Value
A plot layer instance. Using as output data
a copy of the
input data
in which the data frames mapped to label
have been
modified.
Computed variables
The output of sequentially applying
slice
with tb.rows
as argument and
select
with tb.vars
to a list variable
list mapped to label
and containing a single tibble per row
in data
.
See Also
See geom_table
for details on how tables respond
to mapped aesthetics and table themes. For details on predefined table
themes see ttheme_gtdefault
.
Examples
my.df <-
tibble::tibble(
x = c(1, 2),
y = c(0, 4),
group = c("A", "B"),
tbs = list(a = tibble::tibble(Xa = 1:6, Y = rep(c("x", "y"), 3)),
b = tibble::tibble(Xb = 1:3, Y = "x"))
)
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb() +
expand_limits(x = c(0,3), y = c(-2, 6))
# Hide column names, diplay row names
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(table.colnames = FALSE,
table.rownames = TRUE) +
expand_limits(x = c(0,3), y = c(-2, 6))
# Use a theme for the table
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(table.theme = ttheme_gtlight) +
expand_limits(x = c(0,3), y = c(-2, 6))
# selection and renaming by column position
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(tb.vars = c(value = 1, group = 2),
tb.rows = 1:3) +
expand_limits(x = c(0,3), y = c(-2, 6))
# apply functions to columns
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(tb.vars = c(value = 1, group = 2),
tb.rows = 1:3,
tb.funs = list(group = function(x) {sprintf("italic(%s)", x)},
value = function(x) {ifelse(x > 2, "bold(zz)", x)}),
parse = TRUE) +
expand_limits(x = c(0,3), y = c(-2, 6))
# selection, reordering and renaming by column position
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(tb.vars = c(group = 2, value = 1),
tb.rows = 1:3) +
expand_limits(x = c(0,3), y = c(-2, 6))
# selection and renaming, using partial matching to column name
ggplot(my.df, aes(x, y, label = tbs)) +
stat_fmt_tb(tb.vars = c(value = "X", group = "Y"),
tb.rows = 1:3) +
expand_limits(x = c(0,3), y = c(-2, 6))