[R] retrieve name of an object?

Duncan Murdoch murdoch.duncan at gmail.com
Wed Aug 4 14:33:49 CEST 2010


On 04/08/2010 7:47 AM, Liviu Andronic wrote:
> Dear all
> Is there an easier way to retrieve the name of an object? For example, 
> > tmp <- 1:10
> > as.character(quote(tmp))
> [1] "tmp"
> > as.character(quote(mtcars$cyl))
> [1] "$"      "mtcars" "cyl"   
> > as.character(quote(mtcars$cyl))[3]
> [1] "cyl"
>
> The last call more than anything seems a hack. Is there a better way? 

I don't understand what you want.  "cyl" is not the name of an object; 
it's the name of a component of the mtcars object.  If you know that, 
you can simply use names(mtcars) to get all the names, and 
names(mtcars)[2] to get "cyl".

Perhaps you thought the result of the expression mtcars$cyl was an 
object whose name was "cyl"?  It's not.  Unless you assign it to 
something, it's an anonymous object.

As other have pointed out, in a function you can use substitute(arg) to 
retrieve the expression passed as arg, and deparse(substitute(arg)) to 
turn it into a string that's suitable for using as a label.  But that's 
not the name of the object.  The name of the object in that case is "arg".

Duncan Murdoch



More information about the R-help mailing list