Modify pieces of row and column labels
modify_label_pieces.RdTypical pieces include "noun" or a preposition,
such as "in" or "from".
See RCLabels::prepositions for additional examples.
This argument may be a single string or a character vector.
Usage
modify_label_pieces(
labels,
piece,
mod_map,
prepositions = RCLabels::prepositions_list,
inf_notation = TRUE,
notation = RCLabels::bracket_notation,
choose_most_specific = FALSE
)Arguments
- labels
A vector of row or column labels in which pieces will be modified.
- piece
The piece (or pieces) of the row or column label that will be modified.
- mod_map
A modification map. See details.
- prepositions
A list of prepositions, used to detect prepositional phrases. Default is
RCLabels::prepositions_list.- inf_notation
A boolean that tells whether to infer notation for
x. Default isTRUE. Seeinfer_notation()for details.- notation
The notation type to be used when extracting prepositions. Default is
RCLabels::notations_list, meaning that the notation is inferred usinginfer_notation().- choose_most_specific
A boolean that tells whether the most specific notation is selected when more than one notation match. Default is
FALSE.
Details
This function modifies pieces of row and column labels
according to label_map that defines "one or many to one" relationships.
This function is useful for aggregations.
For example, replacing nouns can be done by
modify_label_pieces(labels, piece = "noun", label_map = list(new_noun = c("a", "b", "c")).
The string "new_noun" will replace any of "a", "b", or "c"
when they appear as nouns in a row or column label.
See examples for details.
The mod_map argument should consist of a
named list of character vectors in which names indicate
strings to be inserted and values indicate
values that should be replaced.
The sense is new = old or new = olds,
where "new" is the new name (the replacement) and
"old"/"olds" is/are a string/vector of strings,
any one of which will be replaced by "new".
Note piece can be "pref"/"suff" or "noun"/"prepositions"
If any piece is "pref" or "suff",
all pieces are assumed to be a prefix or a suffix.
If non of the pieces are "pref" or "suff",
all pieces are assumed to be nouns or prepositions,
such as "in" or "from".
See RCLabels::prepositions for additional examples.
This argument may be a single string or a character vector.
Examples
# Simple case
modify_label_pieces("a [of b in c]",
piece = "noun",
mod_map = list(new_noun = c("a", "b")))
#> [1] "new_noun [of b in c]"
# Works with a vector or list of labels
modify_label_pieces(c("a [of b in c]", "d [-> e in f]"),
piece = "noun",
mod_map = list(new_noun = c("d", "e")))
#> [1] "a [of b in c]" "new_noun [-> e in f]"
# Works with multiple items in the mod_map
modify_label_pieces(c("a [of b in c]", "d [-> e in f]"),
piece = "noun",
mod_map = list(new_noun1 = c("a", "b", "c"),
new_noun2 = c("d", "e", "f")))
#> [1] "new_noun1 [of b in c]" "new_noun2 [-> e in f]"
# Works with multiple pieces to be modified
modify_label_pieces(c("a [of b in c]", "d [-> e in f]"),
piece = c("noun", "in"),
mod_map = list(new_noun = c("a", "b", "c"),
new_in = c("c", "f")))
#> [1] "new_noun [of b in new_in]" "d [-> e in new_in]"