as_name() converts symbols to character strings. The conversion is deterministic. That is, the roundtrip symbol -> name -> symbol always gets the same result.

  • Use as_name() when you need to transform a symbol to a string to refer to an object by its name.

  • Use as_label() when you need to transform any kind of object to a string to represent that object with a short description.

Expect as_name() to gain name-repairing features in the future.

Note that rlang::as_name() is the opposite of base::as.name(). If you're writing base R code, we recommend using base::as.symbol() which is an alias of as.name() that follows a more modern terminology (R types instead of S modes).

as_name(x)

Arguments

x

A string or symbol, possibly wrapped in a quosure. If a string, the attributes are removed, if any.

Value

A character vector of length 1.

See also

as_label() for converting any object to a single string suitable as a label. as_string() for a lower-level version that doesn't unwrap quosures.

Examples

# Let's create some symbols: foo <- quote(foo) bar <- sym("bar") # as_name() converts symbols to strings: foo
#> foo
as_name(foo)
#> [1] "foo"
typeof(bar)
#> [1] "symbol"
typeof(as_name(bar))
#> [1] "character"
# as_name() unwraps quosured symbols automatically: as_name(quo(foo))
#> [1] "foo"