[R] for loop with global variables

Petr PIKAL petr.pikal at precheza.cz
Thu Apr 28 17:17:48 CEST 2011


Hi

r-help-bounces at r-project.org napsal dne 28.04.2011 16:59:26:

> ivan <i.petzev at gmail.com> 
> Odeslal: r-help-bounces at r-project.org
> 
> 28.04.2011 16:59
> 
> Komu
> 
> jim holtman <jholtman at gmail.com>
> 
> Kopie
> 
> r-help at r-project.org
> 
> Předmět
> 
> Re: [R] for loop with global variables
> 
> Hi,
> 
> thank you for the response. What I actually want to do is pick 
automatically
> the results of the various outputs (which I have already defined as
> variables, e.g. output.1,output.2,etc) and insert them into a table. The
> list variable would be redundant since in order to create the data frame 
I
> would rather type data.frame(results=rbind(output.1,output.2,etc.)). If 
I
> had 100 outputs, this would be much work. I rather meant something like
> for(i in 1:100) {x=data.frame(results=rbind(output.[[i]]))}, which does 
not
> work though. It says that object "output." cannot be found.
> 
> Kind Regards

That is the problem. If you used list in the first time you could save 
yourself much problems. BTW - data frame is also a list with some special 
formating.

To extend my example

for(i in 1:3) {
lll[[i]] <- sample(letters,3)
names(lll)[i] <- LETTERS[i]
}

lll
$A
[1] "x" "t" "h"
$B
[1] "c" "m" "w"
$C
[1] "n" "s" "e"

 as.data.frame(lll)
  A B C
1 x c n
2 t m s
3 h w e

Regards
Petr




> 
> 
> 
> On Thu, Apr 28, 2011 at 4:31 PM, jim holtman <jholtman at gmail.com> wrote:
> 
> > Yes you can, but there is not enough explaination as to what you
> > really want to do.  I would suggest that you look at using a 'list'
> > instead of individual objects:
> >
> > myList <- list(output.1 = rbind('a','b'), output.2 = rbind('c','d'), 
...)
> >
> > Then you can use 'lapply' to operation on the elements.
> >
> > On Thu, Apr 28, 2011 at 10:16 AM, ivan <i.petzev at gmail.com> wrote:
> > > Hi,
> > >
> > > is there a possibility to use global variables in a for loop. More
> > > specifically, I want to do the following:
> > >
> > > output.1<-rbind("a","b")
> > > output.2<-rbind("c","d")
> > > output.3<-rbind("e","f")
> > > .
> > > .
> > > .
> > > output.n<-rbind(...,...)
> > >
> > > next I want to create a data frame with two columns:
> > >
> > > Outputs
> > > Values  output.1 "a","b"  output.2 "c","d"  output.3 "e","f"  .
> > >  .
> > >  output.n …,…
> > > My problem is that I do not how to define a loop over global 
variables.
> > > Anybody an idea?
> > >
> > > Thanks.
> > >
> > >        [[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.
> > >
> > >
> >
> >
> >
> > --
> > Jim Holtman
> > Data Munger Guru
> >
> > What is the problem that you are trying to solve?
> >
> 
>    [[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