Dimitris Rizopoulos wrote: > Wacek Kusnierczyk wrote: >> Barry Rowlingson wrote: >>> On Wed, May 13, 2009 at 5:36 PM, Wacek Kusnierczyk >>> <waclaw.marcin.kusnierc...@idi.ntnu.no> wrote: >>>> Barry Rowlingson wrote: >>>>> Soln - "for" loop: >>>>> >>>>> > z=list() >>>>> > for(i in 1:1000){z[[i]]=rnorm(100,0,1)} >>>>> >>>>> now inspect the individual bits: >>>>> >>>>> > hist(z[[1]]) >>>>> > hist(z[[545]]) >>>>> >>>>> If that's the problem, then I suggest she reads an introduction to >>>>> R... >> >>>> i'd suggest reading the r inferno by pat burns [1], where he deals >>>> with >>>> this sort of for-looping lists the way it deserves ;) >>> I don't think extending a list this way is too expensive. Not like >> >> indeed, for some, but only for some, values of m and n, it can actually >> be half a hair faster than the matrix and the replicate approaches, >> proposed earlier by others: > > another approach to create a matrix, a bit more efficient than using > matrix() but also clean for beginners IMO, is to directly assign > dimensions to a vector, e.g., > > library(rbenchmark) > > n=100; m=100 > benchmark(replications=100, columns=c('test', 'elapsed'), order=NULL, > list={ l=list(); for (i in 1:n) l[[i]] = rnorm(m) }, > liist={ l=vector('list', n); for (i in 1:n) l[[i]] = rnorm(m) }, > matrix=matrix(rnorm(n*m), n, m), > matrix2 = {mat <- rnorm(n*m); dim(mat) <- c(n, m); mat}, > replicate=replicate(m, rnorm(n)) > )
sure; you could also replace 'matrix' with 'as.matrix' in the original solution, which also gives some speedup: n=100; m=100 benchmark(replications=1000, columns=c('test', 'elapsed'), order=NULL, list={ l=list(); for (i in 1:n) l[[i]] = rnorm(m) }, liist={ l=vector('list', n); for (i in 1:n) l[[i]] = rnorm(m) }, matrix=matrix(rnorm(n*m), n, m), matrix2 = {mat <- rnorm(n*m); dim(mat) <- c(n, m); mat}, as.matrix=as.matrix(rnorm(n*m), n, m), replicate=replicate(m, rnorm(n)) ) # 3 matrix 0.173 # 4 matrix2 0.162 # 5 as.matrix 0.169 vQ ______________________________________________ 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.