matrix_form.tabular {tables} | R Documentation |
Transform tabular object to matrices printable by formatters package
Description
The formatters package provides methods for displaying and breaking up tables into smaller pieces.
Usage
matrix_form.tabular(df)
Arguments
df |
A tabular object. |
Details
The formatters package provides a matrix_form
generic function for S4 objects. "tabular"
objects
are S3 objects, so it won't dispatch to this function,
which must be fully specified when called.
Author(s)
Duncan Murdoch with help from Gabe Becker.
Examples
if (requireNamespace("formatters")) {
Sex <- factor(sample(c("Male", "Female"), 100, rep=TRUE))
Status <- factor(sample(c("low", "medium", "high"), 100, rep=TRUE))
z <- rnorm(100) + 5
fmt <- function(x) {
s <- format(x, digits=2)
even <- ((1:length(s)) %% 2) == 0
s[even] <- sprintf("(%s)", s[even])
s
}
tab <- tabular( Justify(c)*Heading()*z*Sex*Heading(Statistic)*Format(fmt())*(mean+sd)
~ Status )
mform <- matrix_form.tabular(tab)
page <- 1
cat("Page ", page, " Full table\n\n")
cat(formatters::toString(mform))
# This shows automatic pagination, breaking up the
# table by rows
byrow <- formatters::pag_indices_inner(formatters::mf_rinfo(mform),
rlpp = 2,
min_siblings = 1)
for (i in seq_along(byrow)) {
mform2 <- matrix_form.tabular(tab[byrow[[i]], ])
page <- page + 1
cat("\nPage ", page, " Rows", byrow[[i]], "\n\n")
cat(formatters::toString(mform2))
}
# This gives the breaks by columns, counting the
# row label columns.
# The formatters::vert_pag_indices function had an incompatible
# change in v0.5.8
if ("fontspec" %in% names(formals(formatters::vert_pag_indices)))
bycol <- formatters::vert_pag_indices(mform, cpp = 30, rep_cols = 2,
fontspec = NULL)
else
bycol <- formatters::vert_pag_indices(mform, cpp = 30, rep_cols = 2)
# Display the table with both kinds of breaks
for (i in seq_along(byrow)) {
rows <- byrow[[i]]
for (j in seq_along(bycol)) {
cols <- bycol[[j]]
cols <- cols[cols > 2] - 2 # cols includes the row labels
mform3 <- matrix_form.tabular(tab[rows, cols, drop = FALSE])
page <- page + 1
cat("\nPage ", page, "Rows", rows, "column", cols, "\n\n")
cat(formatters::toString(mform3))
}
}
}
[Package tables version 0.9.28 Index]