assert_character_scalar: Is an Argument a Character Scalar (String)?

Description Usage Arguments Value Author(s) Examples

View source: R/assertions.R

Description

Checks if an argument is a character scalar and (optionally) whether it matches one of the provided values.

Usage

1
2
3
4
5
6
assert_character_scalar(
  arg,
  values = NULL,
  case_sensitive = TRUE,
  optional = FALSE
)

Arguments

arg

A function argument to be checked

values

A character vector of valid values for arg

case_sensitive

Should the argument be handled case-sensitive? If set to FALSE, the argument is converted to lower case for checking the permitted values and returning the argument.

optional

Is the checked parameter optional? If set to FALSE and arg is NULL then an error is thrown

Value

The function throws an error if arg is not a character vector or if arg is a character vector but of length > 1 or if its value is not one of the values specified. Otherwise, the input is returned invisibly.

Author(s)

Thomas Neitmann

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
example_fun <- function(msg_type) {
  assert_character_scalar(msg_type, values = c("warning", "error"))
}

example_fun("warning")

try(example_fun("message"))

try(example_fun(TRUE))

# handling parameters case-insensitive
example_fun2 <- function(msg_type) {
  msg_type <- assert_character_scalar(msg_type,
                                      values = c("warning", "error"),
                                      case_sensitive = FALSE)
 if (msg_type == "warning") {
   print("A warning was requested.")
 }
}

example_fun2("Warning")

epijim/admiral documentation built on Feb. 13, 2022, 12:15 a.m.