dots_list {rlang} | R Documentation |
These functions evaluate all arguments contained in ...
and
return them as a list. They both splice their arguments if they
qualify for splicing. See ll()
for information about splicing
and below for the kind of arguments that qualify for splicing.
dots_list(..., .ignore_empty = c("trailing", "none", "all")) dots_splice(..., .ignore_empty = c("trailing", "none", "all"))
... |
Arguments with explicit ( |
.ignore_empty |
Whether to ignore empty arguments. Can be one
of |
dots_list()
has explicit splicing semantics: it splices lists
that are explicitly marked for splicing with the
splice()
adjective. dots_splice()
on the other hand has list
splicing semantics: in addition to lists marked explicitly for
splicing, bare lists are spliced as well.
A list of arguments. This list is always named: unnamed
arguments are named with the empty string ""
.
exprs()
for extracting dots without evaluation.
# Compared to simply using list(...) to capture dots, dots_list() # splices explicitly: x <- list(1, 2) dots_list(!!! x, 3) # Unlike dots_splice(), it doesn't splice bare lists: dots_list(x, 3) # Splicing is also helpful to workaround exact and partial matching # of arguments. Let's create a function taking named arguments and # dots: fn <- function(data, ...) { dots_list(...) } # You normally cannot pass an argument named `data` through the dots # as it will match `fn`'s `data` argument. The splicing syntax # provides a workaround: fn(some_data, !!! list(data = letters)) # dots_splice() splices lists marked with splice() as well as bare # lists: x <- list(1, 2) dots_splice(!!! x, 3) dots_splice(x, 3)