Wonder if this is part of some assignment with points on elegance of code. Sort of when I teach a class......
On Fri, 16 Mar 2012 10:02:48 -0400 Raphael Fraser <raphael.fra...@gmail.com> wrote: > Thank you all. Your responses were very helpful. > > Raphael > > On Fri, Mar 16, 2012 at 5:04 AM, Daniel Nordlund > <djnordl...@frontier.com> wrote: > > > >> -----Original Message----- > >> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] > >> On Behalf Of Pascal Oettli > >> Sent: Friday, March 16, 2012 12:36 AM > >> To: Raphael Fraser > >> Cc: r-help@r-project.org > >> Subject: [R] Re : Elegant Code > >> > >> Hi Raphael, > >> > >> Something like that? > >> > >> require(pscl)sim <- numeric() > >> for(i in 1:5){ > >> eval(parse(text=paste('b',i,' <- rigamma(50,1,1)',sep=''))) > >> eval(parse(text=paste('theta',i,' <- > >> rgamma(50,0.5,(1/b',i,'))',sep=''))) > >> eval(parse(text=paste('sim',i,' <- rpois(50,theta',1,')',sep=''))) > >> eval(parse(text=paste('sim <- cbind(sim, sim',i,')',sep=''))) > >> } > >> x11() > >> par(mfrow=c(1,5)) > >> boxplot(c(sim1,sim2,sim3,sim4,sim5)) > >> > >> x11() > >> boxplot(sim) > >> > >> > >> Regards, > >> Pascal > >> > >> > >> ----- Mail original ----- > >> De : Raphael Fraser <raphael.fra...@gmail.com> > >> À : r-help@r-project.org > >> Cc : > >> Envoyé le : Vendredi 16 mars 2012 16h09 > >> Objet : [R] Elegant Code > >> > >> Hi, > >> > >> Can anyone help to write a more elegant version of my code? I am sure > >> this can be put into a loop but I am having trouble creating the > >> objects b1,b2,b3,...,etc. > >> > >> b1 <- rigamma(50,1,1) > >> theta1 <- rgamma(50,0.5,(1/b1)) > >> sim1 <- rpois(50,theta1) > >> > >> b2 <- rigamma(50,1,1) > >> theta2 <- rgamma(50,0.5,(1/b2)) > >> sim2 <- rpois(50,theta2) > >> > >> b3 <- rigamma(50,1,1) > >> theta3 <- rgamma(50,0.5,(1/b3)) > >> sim3 <- rpois(50,theta3) > >> > >> b4 <- rigamma(50,1,1) > >> theta4 <- rgamma(50,0.5,(1/b4)) > >> sim4 <- rpois(50,theta4) > >> > >> b5 <- rigamma(50,1,1) > >> theta5 <- rgamma(50,0.5,(1/b5)) > >> sim5 <- rpois(50,theta5) > >> > >> > >> > >> par(mfrow=c(1,5)) > >> boxplot(sim1) > >> boxplot(sim2) > >> boxplot(sim3) > >> boxplot(sim4) > >> boxplot(sim5); > >> > >> Thanks, > >> Raphael > >> > > > > Or, just get rid of the for loops altogether, something like this > > > > trials <-5 > > N <- 50 > > b <- rigamma(N*trials, 1, 1) > > theta <- rgamma(N*trials,0.5,1/b) > > sim <- rpois(N*trials,theta) > > > > dim(sim) <- c(N,trials) > > > > boxplot(sim) > > > > > > Hope this is helpful, > > > > Dan > > > > Daniel Nordlund > > Bothell, WA USA > > > > ______________________________________________ > > R-help@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. > > ______________________________________________ > R-help@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. > ______________________________________________ R-help@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.