[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