[R] Error when modifying names of the object returned by get()

Duncan Murdoch murdoch.duncan at gmail.com
Tue Feb 15 19:45:36 CET 2011


On 15/02/2011 11:43 AM, John Edwards wrote:
> I get the following error when I try to modify the names of the object
> returned by get(). Does anybody know how to do so? (I could use as.vector()
> to remove the names, but I'm interested in how to modify the object returned
> by get().)

You can probably do this by constructing a call to the `names<-` 
replacement function, but it's really bad style.  Don't write R code 
that has external side effects if you can avoid it.  In this case, 
you'll almost certainly get more maintainable code by writing your 
function to return a copy of x with new names, rather than trying to 
modify the original.

Duncan Murdoch

> $ cat main_get_name_assign.R
> x=1:10
> names(x)=letters[1:10]
>
> names(get('x'))=LETTERS[1:10]
> #names(x)=LETTERS[1:10]
> x
>
> $ Rscript main_get_name_assign.R
> >  x=1:10
> >  names(x)=letters[1:10]
> >
> >  names(get('x'))=LETTERS[1:10]
> Error in names(get("x")) = LETTERS[1:10] :
>    target of assignment expands to non-language object
> Execution halted
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list