This function switches matrix row and/or column names from one type of notation to another
based on the from and to arguments.
Optionally, prefix and suffix can be flipped.
Usage
switch_notation_byname(a, margin = c(1, 2), from, to, flip = FALSE)Arguments
- a
A matrix or list of matrices whose row and/or column notation is to be changed.
- margin
1For rows,2for columns, orc(1, 2)for both rows and columns. Default isc(1, 2).- from
The
notationto switch away from.- to
The
notationto switch to.- flip
A boolean that tells whether to also flip the notation. Default is
FALSE.
Examples
m <- matrix(c(1, 2,
3, 4), nrow = 2, ncol = 2, byrow = TRUE,
dimnames = list(c("b [a]", "d [c]"), c("f [e]", "h [g]"))) %>%
setrowtype("Products [Industries]") %>% setcoltype("Industries [Products]")
m
#> f [e] h [g]
#> b [a] 1 2
#> d [c] 3 4
#> attr(,"rowtype")
#> [1] "Products [Industries]"
#> attr(,"coltype")
#> [1] "Industries [Products]"
switch_notation_byname(m, from = RCLabels::bracket_notation, to = RCLabels::arrow_notation,
flip = TRUE)
#> e -> f g -> h
#> a -> b 1 2
#> c -> d 3 4
#> attr(,"rowtype")
#> [1] "Industries -> Products"
#> attr(,"coltype")
#> [1] "Products -> Industries"
# Also works for lists.
# Note that margin must be specified as a list here.
switch_notation_byname(list(m, m), margin = list(c(1, 2)),
from = RCLabels::bracket_notation,
to = RCLabels::arrow_notation, flip = TRUE)
#> [[1]]
#> e -> f g -> h
#> a -> b 1 2
#> c -> d 3 4
#> attr(,"rowtype")
#> [1] "Industries -> Products"
#> attr(,"coltype")
#> [1] "Products -> Industries"
#>
#> [[2]]
#> e -> f g -> h
#> a -> b 1 2
#> c -> d 3 4
#> attr(,"rowtype")
#> [1] "Industries -> Products"
#> attr(,"coltype")
#> [1] "Products -> Industries"
#>