assert_scalar_character <- function(x, name = deparse(substitute(x))) {
assert_character(x, name)
assert_scalar(x, name)
assert_nonmissing(x, name)
if (!nzchar(x)) {
stop(sprintf("'%s' must be nonempty", name), call. = FALSE)
}
}
assert_scalar_integer <- function(x, name = deparse(substitute(x))) {
assert_integer_like(x, name)
assert_scalar(x, name)
assert_nonmissing(x, name)
}
assert_scalar_logical <- function(x, name = deparse(substitute(x))) {
assert_logical(x, name)
assert_scalar(x, name)
assert_nonmissing(x, name)
}
assert_character <- function(x, name = deparse(substitute(x))) {
if (!is.character(x)) {
stop(sprintf("'%s' must be a character", name), call. = FALSE)
}
}
assert_logical <- function(x, name = deparse(substitute(x))) {
if (!is.logical(x)) {
stop(sprintf("'%s' must be a logical", name), call. = FALSE)
}
}
assert_scalar <- function(x, name = deparse(substitute(x))) {
if (length(x) != 1) {
stop(sprintf("'%s' must be a scalar", name), call. = FALSE)
}
}
assert_nonmissing <- function(x, name = deparse(substitute(x))) {
if (any(is.na(x))) {
stop(sprintf("'%s' must not be NA", name), call. = FALSE)
}
}
assert_integer_like <- function(x, name = deparse(substitute(x))) {
if (!is.integer(x) && !isTRUE(all.equal(as.integer(x), x))) {
stop(sprintf("'%s' is not integer like", name))
}
}
assert_connection <- function(x, name = deparse(substitute(x))) {
if (!inherits(x, "connection")) {
stop(sprintf("'%s' must be a connection object", name), call. = FALSE)
}
}
assert_is <- function(x, what, name = deparse(substitute(x))) {
if (!inherits(x, what)) {
stop(sprintf("'%s' must be a %s", name,
paste(what, collapse = " / ")), call. = FALSE)
}
}
match_value <- function(arg, choices, name = deparse(substitute(arg))) {
assert_scalar_character(arg, name = name)
if (!(arg %in% choices)) {
stop(sprintf("%s must be one of %s",
name, paste(squote(choices), collapse = ", ")))
}
arg
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.