Collection of small helper functions. trim_ws()
is an
efficient function to trim leading and trailing whitespaces from character
vectors or strings. n_unique()
returns the number of unique values in a
vector. has_single_value()
is equivalent to n_unique() == 1
but is faster.
safe_deparse()
is comparable to deparse1()
, i.e. it can safely
deparse very long expressions into a single string. safe_deparse_symbol()
only deparses a substituted expressions when possible, which can be much faster
than deparse(substitute())
for those cases where substitute()
returns no
valid object name.
Usage
trim_ws(x, ...)
# S3 method for class 'data.frame'
trim_ws(x, character_only = TRUE, ...)
n_unique(x, ...)
# Default S3 method
n_unique(x, remove_na = TRUE, ...)
safe_deparse(x, ...)
safe_deparse_symbol(x)
has_single_value(x, remove_na = FALSE, ...)
Value
n_unique()
: For a vector,n_unique
always returns an integer value, even if the input isNULL
(the return value will be0
then). For data frames or lists,n_unique()
returns a named numeric vector, with the number of unique values for each element.has_single_value()
:TRUE
ifx
has only one unique value,FALSE
otherwise.trim_ws()
: A character vector, where trailing and leading white spaces are removed.safe_deparse()
: A character string of the unevaluated expression or symbol.safe_deparse_symbol()
: A character string of the unevaluated expression or symbol, ifx
was a symbol. Ifx
is no symbol (i.e. ifis.name(x)
would returnFALSE
),NULL
is returned.
Examples
trim_ws(" no space! ")
#> [1] "no space!"
n_unique(iris$Species)
#> [1] 3
has_single_value(c(1, 1, 2))
#> [1] FALSE
# safe_deparse_symbol() compared to deparse(substitute())
safe_deparse_symbol(as.name("test"))
#> [1] "test"
deparse(substitute(as.name("test")))
#> [1] "as.name(\"test\")"