[R] Getting variable names in function output

Uwe Ligges ligges at statistik.tu-dortmund.de
Sat Feb 5 19:58:17 CET 2011


I realy think you are on a completely non-R way of implementing 
something that could be done much better. But since I do not know what 
you are going to do, here is the answer for your question:

Just add
   names(end) <- end
one line before your return() statement.

Uwe Ligges




On 03.02.2011 01:55, Sébastien Bihorel wrote:
> Dear R-users,
>
> I would like to have some advises about a problem illustrated by the
> following snippet. Within myf, I need to evaluate a piece of R code that is
> passed as a character argument and then return the objects that are created
> by this code. The difficulty comes from the fact that the content of the
> code is variable and unknown to me (obviously not in this illustration!).
> With the following script, myf returns the content of the objects created by
> the code, but I could not find a way to get the names of the objects in
> addition to their contents.
>
> Any suggestion will be welcome
>
> Sebastien
>
> rm(list=ls(all=T))
>
> code1<- paste('l<- list(a=1,b=2,c=3)',
>                         'm<- matrix(1:15,nrow=3)', sep='\n')
>
> code2<- 'g<- rnorm(100,10,2)'
>
> myf<- function(code=NULL){
>
>    start<- ls(all=T)
>
>    eval(parse(text=code))
>
>    end<- ls(all=T)
>    end<- end[-which(end=='start')]
>
>    return(lapply(end[!end%in%
> start],function(x) eval(parse(text=x))))
> }
>
> myf(code1)
> myf(code2)
>
> 	[[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