section_div
can be used to set or get the section divider for a table object
produced by build_table()
. When assigned in post-processing (section_div<-
)
the table can have a section divider after every row, each assigned independently.
If assigning during layout creation, only split_rows_by()
(and its related row-wise
splits) and analyze()
have a section_div
parameter that will produce separators
between split sections and data subgroups, respectively.
Usage
section_div(obj)
# S4 method for class 'VTableTree'
section_div(obj)
# S4 method for class 'list'
section_div(obj)
# S4 method for class 'TableRow'
section_div(obj)
section_div(obj, only_sep_sections = FALSE) <- value
# S4 method for class 'VTableTree'
section_div(obj, only_sep_sections = FALSE) <- value
# S4 method for class 'list'
section_div(obj, only_sep_sections = FALSE) <- value
# S4 method for class 'TableRow'
section_div(obj, only_sep_sections = FALSE) <- value
# S4 method for class 'LabelRow'
section_div(obj, only_sep_sections = FALSE) <- value
header_section_div(obj)
# S4 method for class 'PreDataTableLayouts'
header_section_div(obj)
# S4 method for class 'VTableTree'
header_section_div(obj)
header_section_div(obj) <- value
# S4 method for class 'PreDataTableLayouts'
header_section_div(obj) <- value
# S4 method for class 'VTableTree'
header_section_div(obj) <- value
top_level_section_div(obj)
# S4 method for class 'PreDataTableLayouts'
top_level_section_div(obj)
top_level_section_div(obj) <- value
# S4 method for class 'PreDataTableLayouts'
top_level_section_div(obj) <- value
Arguments
- obj
(
VTableTree
)
table object. This can be of any class that inherits fromVTableTree
orTableRow
/LabelRow
.- only_sep_sections
(
flag
)
defaults toFALSE
forsection_div<-
. Allows you to set the section divider only for sections that are splits or analyses if the number of values is less than the number of rows in the table. IfTRUE
, the section divider will be set for all rows of the table.- value
(
character
)
vector of single characters to use as section dividers. Each character is repeated such that all section dividers span the width of the table. Each character that is notNA_character_
will produce a trailing separator for each row of the table.value
length should reflect the number of rows, or be between 1 and the number of splits/levels. See the Details section below for more information.
Value
The section divider string. Each line that does not have a trailing separator
will have NA_character_
as section divider.
Details
Assigned value to section divider must be a character vector. If any value is NA_character_
the section divider will be absent for that row or section. When you want to only affect sections
or splits, please use only_sep_sections
or provide a shorter vector than the number of rows.
Ideally, the length of the vector should be less than the number of splits with, eventually, the
leaf-level, i.e. DataRow
where analyze results are. Note that if only one value is inserted,
only the first split will be affected.
If only_sep_sections = TRUE
, which is the default for section_div()
produced from the table
construction, the section divider will be set for all the splits and eventually analyses, but
not for the header or each row of the table. This can be set with header_section_div
in
basic_table()
or, eventually, with hsep
in build_table()
. If FALSE
, the section
divider will be set for all the rows of the table.
See also
basic_table()
parameter header_section_div
and top_level_section_div
for global
section dividers.
Examples
# Data
df <- data.frame(
cat = c(
"really long thing its so ", "long"
),
value = c(6, 3, 10, 1)
)
fast_afun <- function(x) list("m" = rcell(mean(x), format = "xx."), "m/2" = max(x) / 2)
tbl <- basic_table() %>%
split_rows_by("cat", section_div = "~") %>%
analyze("value", afun = fast_afun, section_div = " ") %>%
build_table(df)
# Getter
section_div(tbl)
#> [1] NA " " "~" NA " " "~"
# Setter
section_div(tbl) <- letters[seq_len(nrow(tbl))]
tbl
#> all obs
#> ———————————————————————————————————
#> really long thing its so
#> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
#> m 8
#> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
#> m/2 5
#> ccccccccccccccccccccccccccccccccccc
#> long
#> ddddddddddddddddddddddddddddddddddd
#> m 2
#> eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
#> m/2 1.5
# last letter can appear if there is another table
rbind(tbl, tbl)
#> all obs
#> ———————————————————————————————————
#> really long thing its so
#> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
#> m 8
#> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
#> m/2 5
#> ccccccccccccccccccccccccccccccccccc
#> long
#> ddddddddddddddddddddddddddddddddddd
#> m 2
#> eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
#> m/2 1.5
#> fffffffffffffffffffffffffffffffffff
#> really long thing its so
#> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
#> m 8
#> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
#> m/2 5
#> ccccccccccccccccccccccccccccccccccc
#> long
#> ddddddddddddddddddddddddddddddddddd
#> m 2
#> eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
#> m/2 1.5
# header_section_div
header_section_div(tbl) <- "+"
tbl
#> all obs
#> ———————————————————————————————————
#> +++++++++++++++++++++++++++++++++++
#> really long thing its so
#> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
#> m 8
#> bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
#> m/2 5
#> ccccccccccccccccccccccccccccccccccc
#> long
#> ddddddddddddddddddddddddddddddddddd
#> m 2
#> eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
#> m/2 1.5