# [R] Loop Repetition

Tolulope Adeagbo to|u|ope@de@gbo @end|ng |rom gm@||@com
Tue Aug 6 11:50:20 CEST 2019

```Wow...Great one BOB...Gracias, Merci.

On Tue, 6 Aug 2019, 10:46 Bob O'Hara, <rni.boh using gmail.com> wrote:

> For a start, try this:
>
> for(i in 1:5) {
>   x <- runif(4,0,1)
> }
>
> Which will do what you want, but will over-write x each time (so isn't
> very good). Better (if you want to use the random numbers outside the
> loop) is this:
>
> x <- matrix(NA, nrow=5, ncol=4)
> for(i in 1:5) {
>   x[i,] <- runif(4,0,1)
> }
>
> But better than this is not to use a loop at all, but to use R's
> vectorisation:
>
> x <- matrix(runif(20,0,1), nrow=5, ncol=4)
>
> i.e. generate a vector of random numbers (the runif()), and then put
> that into a matrix (the matrix()).
>
> Oh, and you could also do this:
> replicate(5, runif(4, 0,1))
> which is slightly odd here, but if you want to use the random numbers
> to do something, you can do all of it in a function, e.g.
>
> CalcMean <- function(n=4) {
>   x <- runif(n, 0, 1)
>   mean(x)
> }
> replicate(5, CalcMean(n=4))
>
> Using a function makes code writing a lot easier, as you can write and
> debug the function on its own, and then use replicate() to run the
> loop (there are also functions like vapply() and apply() if you need
> to pass different arguments into the function for different
> iterations).
>
> Bob
>
>
>
>
> On Tue, 6 Aug 2019 at 11:28, Tolulope Adeagbo <tolulopeadeagbo using gmail.com>
> wrote:
> >
> > Thanks guys, I've tried all you're suggesting,  both for (x in 1:5) and
> > break, but I cant seem to ascertain when the loop has generated a vector
> of
> > 4 random numbers  5 times.
> >
> > On Tue, 6 Aug 2019, 10:09 Jim Lemon, <drjimlemon using gmail.com> wrote:
> >
> > > Hi Tolulope,
> > > The "in" operator steps through each element of the vector on the
> > > right. You only have one element. Therefore you probably want:
> > >
> > > for(x in 1:5)
> > > ...
> > >
> > > Jim
> > >
> > > Jim
> > >
> > > On Tue, Aug 6, 2019 at 6:54 PM Tolulope Adeagbo
> > > <tolulopeadeagbo using gmail.com> wrote:
> > > >
> > > > Hey guys,
> > > >
> > > > I'm trying to write a loop that will repeat an action for a
> stipulated
> > > > number of times. I have written some code but i think i'm missing
> > > something.
> > > >
> > > > for (x in 5) {
> > > >
> > > >   repeat{
> > > >
> > > >     x = runif(1:4, min = 0, max = 1)
> > > >
> > > >
> > > >     print(x)
> > > >
> > > >
> > > >     if (x== var_1[5]){
> > > >
> > > >       print("done")
> > > >     }
> > > >
> > > >     print(x)}
> > > > }
> > > >
> > > > The goal is to generate the random number 5 times.
> > > >
> > > >
> > > >         [[alternative HTML version deleted]]
> > > >
> > > > ______________________________________________
> > > > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > http://www.R-project.org/posting-guide.html
> > > > and provide commented, minimal, self-contained, reproducible code.
> > >
> >
> >         [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > https://stat.ethz.ch/mailman/listinfo/r-help
> http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
>
>
> --
> Bob O'Hara
> Institutt for matematiske fag
> NTNU
> 7491 Trondheim
> Norway
>
> Mobile: +47 915 54 416
> Journal of Negative Results - EEB: www.jnr-eeb.org
>

[[alternative HTML version deleted]]

```