R: Evaluate dots with preliminary splicing

dots_values {rlang} | R Documentation

## Evaluate dots with preliminary splicing

### Description

This is a tool for advanced users. It captures dots, processes unquoting and splicing operators, and evaluates them. Unlike `dots_list()`, it does not flatten spliced objects, instead they are attributed a `spliced` class (see `splice()`). You can process spliced objects manually, perhaps with a custom predicate (see `flatten_if()`).

### Usage

    dots_values(..., .ignore_empty = c("trailing", "none", "all"),
      .preserve_empty = FALSE, .homonyms = c("keep", "first", "last",
      "error"), .check_assign = FALSE)

### Arguments

`...` | Arguments to evaluate and process splicing operators.
`.ignore_empty` | Whether to ignore empty arguments. Can be one of `"trailing"`, `"none"`, `"all"`. If `"trailing"`, only the last argument is ignored if it is empty.
`.preserve_empty` | Whether to preserve the empty arguments that were not ignored. If `TRUE`, empty arguments are stored with `missing_arg()` values. If `FALSE` (the default) an error is thrown when an empty argument is detected.
`.homonyms` | How to treat arguments with the same name. The default, `"keep"`, preserves these arguments. Set `.homonyms` to `"first"` to only keep the first occurrences, to `"last"` to keep the last occurrences, and to `"error"` to raise an informative error and indicate what arguments have duplicated names.
`.check_assign` | Whether to check for `<-` calls passed in dots. When `TRUE` and a `<-` call is detected, a warning is issued to advise users to use `=` if they meant to match a function parameter, or wrap the `<-` call in braces otherwise. This ensures assignments are explicit.

### Examples

    dots <- dots_values(!!! list(1, 2), 3)
    dots

    # Flatten the objects marked as spliced:
    flatten_if(dots, is_spliced)

[Package rlang version 0.4.0 Index]