[R] assign question

Albyn Jones jones at reed.edu
Mon Jul 20 20:50:47 CEST 2009


I don't think you want assign() here.

> x1 = rnorm(20)
> min(x1)
[1] -0.9723398

> min(eval(paste("x",1,sep="")))  # not the solution
[1] "x1"

> min(eval(as.name(paste("x",1,sep=""))))  # a solution
[1] -0.9723398

try:

for(i in 1:27) {
   xener[i] <- min(eval(as.name((paste("sa",i,sep="")))))
   }

albyn

On Mon, Jul 20, 2009 at 01:26:05PM -0500, Erin Hodgess wrote:
> Dear R People:
> 
> I have several vectors, sa1, sa2,...sa27 of varying lengths.
> 
> I want to produce one vector xener[1:27] which has the minimum of each sa[i].
> 
> I'm trying to set up a loop and use the assign statement, but here are
> my results:
> 
> > for(i in 1:27) {
> + xener[i] <- min(assign(paste("sa",i,sep="")))
> + }
> Error in assign(paste("sa", i, sep = "")) :
>   element 2 is empty;
>    the part of the args list of '.Internal' being evaluated was:
>    (x, value, envir, inherits)
> >
> 
> Any suggestions would be most welcome.
> 
> Thanks in advance,
> Erin
> 
> 
> -- 
> Erin Hodgess
> Associate Professor
> Department of Computer and Mathematical Sciences
> University of Houston - Downtown
> mailto: erinm.hodgess at gmail.com
> 
> ______________________________________________
> 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