simplify_simple {statnet.common} | R Documentation |
Convert a list to an atomic vector if it consists solely of atomic elements of length 1.
Description
This behaviour is not dissimilar to that of simplify2array()
, but
it offers more robust handling of empty or NULL elements and never
promotes to a matrix or an array, making it suitable to be a column
of a data.frame
.
Usage
simplify_simple(
x,
toNA = c("null", "empty", "keep"),
empty = c("keep", "unlist"),
...
)
Arguments
x |
an R |
toNA |
a character string indicating whether |
empty |
a character string indicating how empty lists should
be handled: either |
... |
additional arguments passed to |
Value
an atomic vector or a list of the same length as x
.
Examples
(x <- as.list(1:5))
stopifnot(identical(simplify_simple(x), 1:5))
x[3] <- list(NULL) # Put a NULL in place of 3.
x
stopifnot(identical(simplify_simple(x, FALSE), x)) # Can't be simplified without replacing the NULL.
stopifnot(identical(simplify_simple(x), c(1L,2L,NA,4L,5L))) # NULL replaced by NA and simplified.
x[[3]] <- integer(0)
x
stopifnot(identical(simplify_simple(x), x)) # A 0-length vector is not replaced by default,
stopifnot(identical(simplify_simple(x, "empty"), c(1L,2L,NA,4L,5L))) # but can be.
(x <- lapply(1:5, function(i) c(i,i+1L))) # Elements are vectors of equal length.
simplify2array(x) # simplify2array() creates a matrix,
stopifnot(identical(simplify_simple(x), x)) # but simplify_simple() returns a list.