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
(note the different default for the remove_na argument). 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_uniquealways returns an integer value, even if the input isNULL(the return value will be0then). For data frames or lists,n_unique()returns a named numeric vector, with the number of unique values for each element.has_single_value():TRUEifxhas only one unique value,FALSEotherwise.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, ifxwas a symbol. Ifxis no symbol (i.e. ifis.name(x)would returnFALSE),NULLis 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\")"
