Compared to to_chr(), stabilize_chr() checks more details, but is slower.
stabilise_chr(), stabilize_character(), and stabilise_character() are
synonyms of stabilize_chr().
Usage
stabilize_chr(
x,
...,
allow_null = TRUE,
allow_na = TRUE,
min_size = NULL,
max_size = NULL,
unique = FALSE,
min_characters = NULL,
max_characters = NULL,
regex = NULL,
allowed_values = NULL,
x_arg = caller_arg(x),
call = caller_env(),
x_class = object_type(x)
)
stabilize_character(
x,
...,
allow_null = TRUE,
allow_na = TRUE,
min_size = NULL,
max_size = NULL,
unique = FALSE,
min_characters = NULL,
max_characters = NULL,
regex = NULL,
allowed_values = NULL,
x_arg = caller_arg(x),
call = caller_env(),
x_class = object_type(x)
)
stabilise_chr(
x,
...,
allow_null = TRUE,
allow_na = TRUE,
min_size = NULL,
max_size = NULL,
unique = FALSE,
min_characters = NULL,
max_characters = NULL,
regex = NULL,
allowed_values = NULL,
x_arg = caller_arg(x),
call = caller_env(),
x_class = object_type(x)
)
stabilise_character(
x,
...,
allow_null = TRUE,
allow_na = TRUE,
min_size = NULL,
max_size = NULL,
unique = FALSE,
min_characters = NULL,
max_characters = NULL,
regex = NULL,
allowed_values = NULL,
x_arg = caller_arg(x),
call = caller_env(),
x_class = object_type(x)
)Arguments
- x
The object to stabilize.
- ...
Arguments passed to methods.
- allow_null
(
logical(1)) Is NULL an acceptable value?- allow_na
(
logical(1)) Are NA values ok?- min_size
(
integer(1)) The minimum size of the object. Object size will be tested usingvctrs::vec_size().- max_size
(
integer(1)) The maximum size of the object. Object size will be tested usingvctrs::vec_size().- unique
(
logical(1)) Should all elements inxbe distinct?- min_characters
(
integer(1)) Minimum number of characters allowed in each element.- max_characters
(
integer(1)) Maximum number of characters allowed in each element.- regex
(character, list, or stringr_pattern)One or more optional regular expressions to test against the values ofx. This can be a character vector, a list of character vectors, or a pattern object from the {stringr} package (e.g.,stringr::fixed("a.b")). The default error message for non-matching values will include the pattern itself (seeregex_must_match()). To provide a custom message, supply a named character vector where the value is the regex pattern and the name is the message that should be displayed. To check that a pattern is not matched, attach anegateattribute set toTRUE. If a complex regex pattern throws an error, try installing the stringi package.- allowed_values
A vector of permitted values (coerced to the target type).
NULL(default) skips the check.NAvalues inxare permitted independently ofallowed_values, subject toallow_na.- x_arg
(
character(1)) The name of the object being stabilized to use in error messages. The automatic value will work in most cases, or pass it through from higher-level functions to make error messages clearer in unexported functions.- call
(environment)The execution environment to mention as the source of error messages.- x_class
(
character(1)) The class name of the object being stabilized to use in error messages. Use this if you remove a special class from the object before checking its coercion, but want the error message to match the original class.
Value
The input as a character vector, or an error condition with classes
<stbl-error>, <stbl-condition>, <rlang_error>, <error>,
<condition>, and a specific class by failure mode:
<stbl-error-coerce-character>whenxcannot be coerced to character.<stbl-error-bad_null>forNULLvalues whenallow_null = FALSE.<stbl-error-bad_na>forNAvalues whenallow_na = FALSE.<stbl-error-size_too_small>when the vector is shorter thanmin_size.<stbl-error-size_too_large>when the vector is longer thanmax_size.<stbl-error-duplicate_elements>whenunique = TRUEand duplicates are present.<stbl-error-n_characters-too_few>when elements have fewer characters thanmin_characters.<stbl-error-n_characters-too_many>when elements have more characters thanmax_characters.<stbl-error-regex_mismatch>whenregexchecks fail.<stbl-error-allowed_values>when values are not inallowed_values.
See also
Other character functions:
are_chr_ish(),
specify_chr(),
stabilize_chr_scalar(),
to(),
to_chr(),
to_chr_scalar()
Other stabilization functions:
assert_present(),
stabilize_any_of(),
stabilize_arg(),
stabilize_chr_scalar(),
stabilize_date(),
stabilize_date_scalar(),
stabilize_dbl(),
stabilize_dbl_scalar(),
stabilize_df(),
stabilize_dttm(),
stabilize_dttm_scalar(),
stabilize_dur(),
stabilize_dur_scalar(),
stabilize_fct(),
stabilize_fct_scalar(),
stabilize_int(),
stabilize_int_scalar(),
stabilize_lgl(),
stabilize_lgl_scalar(),
stabilize_lst(),
stabilize_time(),
stabilize_time_scalar(),
to_chr(),
to_chr_scalar(),
to_date(),
to_date_scalar(),
to_dbl(),
to_dbl_scalar(),
to_dttm(),
to_dttm_scalar(),
to_dur(),
to_dur_scalar(),
to_fct(),
to_fct_scalar(),
to_int(),
to_int_scalar(),
to_lgl(),
to_lgl_scalar(),
to_time(),
to_time_scalar()
Examples
stabilize_chr(letters)
#> [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s"
#> [20] "t" "u" "v" "w" "x" "y" "z"
stabilize_chr(1:10)
#> [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
stabilize_chr(NULL)
#> NULL
try(stabilize_chr(NULL, allow_null = FALSE))
#> Error in eval(expr, envir) : `NULL` must not be <NULL>.
try(stabilize_chr(c("a", NA), allow_na = FALSE))
#> Error in eval(expr, envir) :
#> `c("a", NA)` must not contain NA values.
#> • NA locations: 2
try(stabilize_chr(letters, min_size = 50))
#> Error in eval(expr, envir) : `letters` must have size >= 50.
#> ✖ 26 is too small.
try(stabilize_chr(letters, max_size = 20))
#> Error in eval(expr, envir) : `letters` must have size <= 20.
#> ✖ 26 is too big.
try(stabilize_chr(c("hi", "hey"), min_characters = 3))
#> Error in eval(expr, envir) :
#> Each element of `c("hi", "hey")` must have >= 3 characters.
#> ℹ Some elements have too few characters.
#> ✖ Location: 1
#> ✖ Value: hi
try(stabilize_chr(c("hi", "hey"), max_characters = 2))
#> Error in eval(expr, envir) :
#> Each element of `c("hi", "hey")` must have <= 2 characters.
#> ℹ Some elements have too many characters.
#> ✖ Location: 2
#> ✖ Value: hey
try(stabilize_chr(c("hide", "find", "find", "hide"), regex = "hide"))
#> Error in eval(expr, envir) :
#> `c("hide", "find", "find", "hide")` must match the regex pattern "hide"
#> ✖ Some values fail the check.
#> ✖ Locations: 2 and 3
#> ✖ Values: find and find
try(stabilize_chr(c("a", "b", "z"), allowed_values = c("a", "b", "c")))
#> Error in eval(expr, envir) :
#> `c("a", "b", "z")` must be one of the allowed values.
#> ℹ Allowed values: "a", "b", and "c".
#> ✖ Unexpected location: 3
#> ✖ Unexpected value: "z".