[R] Very simple loop

Joshua Wiley jwiley.psych at gmail.com
Mon Nov 14 17:46:10 CET 2011


x <-c(0:200)
dat <- data.frame(
  A = dpois(x,exp(4.5355343)),
  B = dpois(x,exp(4.5355343 + 0.0118638)),
  C = dpois(x,exp(4.5355343  -0.0234615)),
  D = dpois(x,exp(4.5355343 + 0.0316557)),
  E = dpois(x,exp(4.5355343 + 0.0004716)),
  F = dpois(x,exp(4.5355343 + 0.056437)),
  G = dpois(x,exp(4.5355343 + 0.1225822)))

## using a looping approach
## instantiate a vector to hold results
results <- vector("numeric", length = length(x))

for(i in 1:201) {# R starts indexing at 1, not 0
  results[i] <- dat[i, "A"] + dat[i, "B"] + dat[i, "C"] +
    dat[i, "D"] + dat[i, "E"] + dat[i, "F"] + dat[i, "G"]
}

## find and plot cumulatively values
plot(x, cumsum(results))

You may be wondering why I put all the variables in a data frame.  It
is because it will be much easier in the long run.  This accomplishes
the same thing as the loop, with a fraction of the effort and much
much faster (loops can be slow in R, and vectorizing is preferred).

plot(x, cumsum(rowSums(dat)))

rowSums() is a vectorized function that finds the (duh) sums of each
row, then I just find the cumulative sum, and plot.

Hope this helps,

Josh

On Mon, Nov 14, 2011 at 7:59 AM, Davg <davidgrimsey at hotmail.com> wrote:
> I'm very new to R and am trying to create my first loop.
>
> I have:
>
> x <-c(0:200)
> A <- dpois(x,exp(4.5355343))
> B <- dpois(x,exp(4.5355343 + 0.0118638))
> C <- dpois(x,exp(4.5355343  -0.0234615))
> D <- dpois(x,exp(4.5355343 + 0.0316557))
> E <- dpois(x,exp(4.5355343 + 0.0004716))
> F <- dpois(x,exp(4.5355343 + 0.056437))
> G <- dpois(x,exp(4.5355343 + 0.1225822))
>
> and would like to to get A[K] + B[K] + C[K] + D[K] + E[K] + F[K] G[K]
> for K(0:200)
>
> And then plot these cumulative values.
>
> Many thanks.
>
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Very-simple-loop-tp4039895p4039895.html
> Sent from the R help mailing list archive at Nabble.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.
>



-- 
Joshua Wiley
Ph.D. Student, Health Psychology
Programmer Analyst II, ATS Statistical Consulting Group
University of California, Los Angeles
https://joshuawiley.com/



More information about the R-help mailing list