R/Utilities.R
select_rows_byname.Rd
Arguments indicate which rows are to be retained and which are to be removed. For maximum flexibility, arguments are extended regex patterns that are matched against row names.
select_rows_byname(a, retain_pattern = "$^", remove_pattern = "$^")
a | a matrix or a list of matrices |
---|---|
retain_pattern | an extended regex or list of extended regular expressions that specifies which rows of |
remove_pattern | an extended regex or list of extended regular expressions that specifies which rows of |
a matrix that is a subset of m
with rows selected by retain_pattern
and remove_pattern
.
If a
is NULL
, NULL
is returned.
Patterns are compared against row names using extended regex.
If no row names of m
match the retain_pattern
, NULL
is returned.
If no row names of m
match the remove_pattern
, m
is returned.
Note that the default retain_pattern
and remove_pattern
($^
)
retain nothing and remove nothing.
Retaining rows takes precedence over removing rows, always.
Some typical patterns are:
^Electricity$|^Oil$
: row names that are EXACTLY Electricity
or EXACTLY Oil
.
^Electricity|^Oil
: row names that START WITH Electricity
or START WITH Oil
.
Electricity|Oil
: row names that CONTAIN Electricity
or CONTAIN Oil
anywhere within them.
Given a list of row names, a pattern can be constructed easily using the make_pattern
function.
make_pattern
escapes regex strings using Hmisc::escapeRegex()
.
This function assumes that retain_pattern
and remove_pattern
have already been
suitably escaped.
Note that if all rows are removed from a
, NULL
is returned.
m <- matrix(1:16, ncol = 4, dimnames=list(c(paste0("i", 1:4)), paste0("p", 1:4))) %>% setrowtype("Industries") %>% setcoltype("Commodities") select_rows_byname(m, retain_pattern = make_pattern(c("i1", "i4"), pattern_type = "exact"))#> p1 p2 p3 p4 #> i1 1 5 9 13 #> i4 4 8 12 16 #> attr(,"rowtype") #> [1] "Industries" #> attr(,"coltype") #> [1] "Commodities"#> p1 p2 p3 p4 #> i2 2 6 10 14 #> i4 4 8 12 16 #> attr(,"rowtype") #> [1] "Industries" #> attr(,"coltype") #> [1] "Commodities"#> [[1]] #> p1 p2 p3 p4 #> i1 1 5 9 13 #> i4 4 8 12 16 #> attr(,"rowtype") #> [1] "Industries" #> attr(,"coltype") #> [1] "Commodities" #> #> [[2]] #> p1 p2 p3 p4 #> i1 1 5 9 13 #> i4 4 8 12 16 #> attr(,"rowtype") #> [1] "Industries" #> attr(,"coltype") #> [1] "Commodities" #>