def: Define a vector of a given mode and length (possibly filling...

Description Usage Arguments Value See Also Examples

View source: R/def.R

Description

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).

Usage

1
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

mode(), rep(), temp_env()

Examples

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

svMisc documentation built on Oct. 12, 2021, 1:08 a.m.