name {base} | R Documentation |
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).
as.name
and as.symbol
are identical: they attempt to
coerce the argument to a name.
is.symbol
and the identical is.name
return TRUE
or FALSE
depending on whether the argument is a name or not.
as.symbol(x)
is.symbol(x)
as.name(x)
is.name(x)
x |
object to be coerced or tested. |
Names are limited to 10,000 bytes (and were to 256 bytes in versions of R before 2.13.0).
as.name
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`
).
as.name
is implemented as as.vector(x, "symbol")
,
and hence will dispatch methods for the generic function as.vector
.
is.name
and is.symbol
are primitive functions.
For as.name
and as.symbol
, an R object of type
"symbol"
(see typeof
).
For is.name
and is.symbol
, a length-one logical vector
with value TRUE
or FALSE
.
The term ‘symbol’ is from the LISP background of R, whereas ‘name’ has been the standard S term for this.
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
call
, is.language
.
For the internal object mode, typeof
.
plotmath
for another use of ‘symbol’.
an <- as.name("arrg")
is.name(an) # TRUE
mode(an) # name
typeof(an) # symbol