inbtw {str2str} | R Documentation |
Elements Inbetween Values Within a (Atomic) Vector
Description
inbtw
extracts all elements inbetween (by position) two specific elements
of a (atomic) vector. This can be useful when working with rownames and colnames
since seq
does not work with names. Primary for character vectors but
can be used with other typeof.
Usage
inbtw(x, from, to, left = TRUE, right = TRUE)
Arguments
x |
atomic vector. |
from |
vector of length 1 specifying the element to start with on the left. |
to |
vector of length 1 specifying the element to end with on the right. |
left |
logical vector of length 1 specifying whether the leftmost element,
|
right |
logical vector of length 1 specifying whether the rightmost element,
|
Details
An error is returned if either from
or to
don't appear in x
or appear more than once in x
.
Value
vector of the same type as x
that only includes elements in x
inbetween (by position) from
and to
, which may or may not include
from
and to
themselves, depending on left
and right
,
respectively.
Examples
# character vector
row_names <- inbtw(x = row.names(LifeCycleSavings), from = "China", to = "Peru")
LifeCycleSavings[row_names, ] # default use
row_names <- inbtw(x = row.names(LifeCycleSavings), from = "China", to = "Peru",
right = FALSE, left = FALSE)
LifeCycleSavings[row_names, ] # use with right and left arguments FALSE
try_expr(inbtw(x = row.names(LifeCycleSavings), from = "china",
to = "peru")) # error due to `from` and `to` not appearing in `x`
try_expr(inbtw(x = rep.int(x = row.names(LifeCycleSavings), times = 2), from = "China",
to = "Peru")) # error due to `from` and `to` appearing more than once in `x`
# numeric vector
vec <- sample(x = 150:199, size = 50)
inbtw(x = vec, from = 150, to = 199)
# list vector (error)
lst <- list(FALSE, 3L, 9.87, "abc", factor("lvl"))
try_expr(inbtw(x = lst, from = 3L, to = "abc")) # error because `lst` is a
# list vector and not an atomic vector