lst() constructs a list, similar to base::list(), but with some of the same features as tibble(). lst() builds components sequentially. When defining a component, you can refer to components created earlier in the call. lst() also generates missing names automatically.

lst(...)

## Arguments

... <dynamic-dots> A set of name-value pairs. These arguments are processed with rlang::quos() and support unquote via !! and unquote-splice via !!!. Use := to create columns that start with a dot. Arguments are evaluated sequentially. You can refer to previously created elements directly or using the .data pronoun. An existing .data pronoun, provided e.g. inside dplyr::mutate(), is not available.

A named list.

## Life cycle

The lst() function is in the questioning stage. It is essentially rlang::list2(), but with a couple features copied from tibble(). It's not clear that a function for creating lists belongs in the tibble package. Consider using rlang::list2() instead.

## Examples

# the value of n can be used immediately in the definition of x
lst(n = 5, x = runif(n))
#> $n #> [1] 5 #> #>$x
#> [1] 0.8056800 0.8140513 0.4039110 0.2184310 0.4183614
#>
# missing names are constructed from user's input
lst(1:3, z = letters[4:6], runif(3))
#> $1:3 #> [1] 1 2 3 #> #>$z
#> [1] "d" "e" "f"
#>
#> $runif(3) #> [1] 0.6688707 0.5076503 0.6603593 #> a <- 1:3 b <- letters[4:6] lst(a, b) #>$a
#> [1] 1 2 3
#>
#> $b #> [1] "d" "e" "f" #> # pre-formed quoted expressions can be used with lst() and then # unquoted (with !!) or unquoted and spliced (with !!!) n1 <- 2 n2 <- 3 n_stuff <- quote(n1 + n2) x_stuff <- quote(seq_len(n)) lst(!!!list(n = n_stuff, x = x_stuff)) #>$n
#> [1] 5
#>
#> $x #> [1] 1 2 3 4 5 #> lst(n = !!n_stuff, x = !!x_stuff) #>$n
#> [1] 5
#>
#> $x #> [1] 1 2 3 4 5 #> lst(n = 4, x = !!x_stuff) #>$n
#> [1] 4
#>
#> $x #> [1] 1 2 3 4 #> lst(!!!list(n = 2, x = x_stuff)) #>$n
#> [1] 2
#>
#> \$x
#> [1] 1 2
#>