loading...

This function makes sure that a vector of a given mode and length is returned. If the value provided is NULL, or empty, the default value is used instead. If length.out = NULL, the length of the vector is not constrained, otherwise, it is fixed (possibly cutting or recycling value).

def(value, default = "", mode = "character", length.out = NULL)

Arguments

value

The value to pass with default.

default

The default value to use, in case of NULL, or length(value) == 0.

mode

The mode of the resulting object: 'character', 'logical', 'numeric' (and, if you want to be more precise: 'double', 'integer' or 'single') or 'complex'. Although not being a mode by itself, you can also specify 'factor' to make sure the result is a factor (thus, of mode 'numeric', storage mode 'integer', with a levels attribute). Other modes are ignored, and value is NOT coerced (silently) in this case, i.e., if you don't want to force coercion of the resulting object, use anything else.

length.out

The desired length of the returned vector; use length.out = NULL (default) if you don't want to change the length of the vector.

Value

A vector of given mode and length, with either value or default.

See also

Examples

def(1:3, length.out = 5)                      # Convert into character and recycle
#> [1] "1" "2" "3" "1" "2"
def(0:2, mode = "logical")                    # Numbers to logical
#> [1] FALSE  TRUE  TRUE
def(c("TRUE", "FALSE"), mode = "logical")     # Text to logical
#> [1]  TRUE FALSE
def(NULL, "default text")                     # Default value used
#> [1] "default text"
def(character(0), "default text")             # Idem
#> [1] "default text"
def(NA, 10, mode = "numeric", length.out = 2) # Vector of two numbers
#> [1] NA NA