function(jj.col.names, jj.modes, nrows, ncopies) { mem.tally.reset() # build up data.frame expression jj.express <- "jj.df<-data.frame(" jj.l <- length(jj.modes) # add first col jj.express <- paste(jj.express, jj.modes[1], "(", nrows, ")", sep = "") # loop through rest for(i in 2:jj.l) { jj.express <- paste(jj.express, ",", jj.modes[i], "(", nrows, ")", sep = "") } jj.express <- paste(jj.express, ")", sep = "") eval(parse(text = jj.express)) dimnames(jj.df)[[2]] <- jj.col.names jj.big.df <- jj.df if(ncopies >= 2) { for(j in 2:ncopies) { jj.big.df <- rbind(jj.big.df, jj.df) } } print(mem.tally.report()/1000000.) print(object.size(jj.big.df)/1000000.) return(jj.big.df) }