# def: Define a vector of a given mode and length (possibly filling... In svMisc: SciViews - Miscellaneous Functions

## 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`.

`mode()`, `rep()`, `temp_env()`
 ```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 ```