Skip to content

as_name() converts symbols to character strings. The conversion is deterministic. That is, the roundtrip symbol -> name -> symbol always gives 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.

## Usage

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.

## Details

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).

## 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"