base (version 3.3.0)

name: Names and Symbols


A ‘name’ (also known as a ‘symbol’) is a way to refer to R objects by name (rather than the value of the object, if any, bound to that name). and as.symbol are identical: they attempt to coerce the argument to a name.

is.symbol and the identical return TRUE or FALSE depending on whether the argument is a name or not.


as.symbol(x) is.symbol(x)


object to be coerced or tested.


For and as.symbol, an R object of type "symbol" (see typeof).For and is.symbol, a length-one logical vector with value TRUE or FALSE.


Names are limited to 10,000 bytes (and were to 256 bytes in versions of R before 2.13.0). first coerces its argument internally to a character vector (so methods for as.character are not used). It then takes the first element and provided it is not "", returns a symbol of that name (and if the element is NA_character_, the name is `NA`). is implemented as as.vector(x, "symbol"), and hence will dispatch methods for the generic function as.vector. and is.symbol are primitive functions.


Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

call, is.language. For the internal object mode, typeof.

plotmath for another use of ‘symbol’.


Run this code
an <-"arrg") # TRUE
mode(an)   # name
typeof(an) # symbol

Run the code above in your browser using DataLab