library(plyr) nrows <- c(1e3, 5e3, 1e4 ,5e4, 1e5 ,2e5) res<-list() for(i in nrows){ print(i) dum <- data.frame(iddd = 1:i, x = runif(i,1,1000), y=runif(i,1,1000)) res[[length(res)+1]]<-(system.time(x<- dlply(dum, .variables=.(iddd),.parallel=FALSE))) } res <- do.call("rbind",res) plot(nrows, res[,"elapsed"]) plot(nrows*log(nrows), res[,"elapsed"]) datasplit <- function(x){ res <- vector(mode="list", length= nrow(x)) for(i in 1:nrow(x)){ res <- x[i,] } return(res) } res <- datasplit(dum) for(i in nrows){ print(i) dum <- data.frame(iddd = 1:i, x = runif(i,1,1000), y=runif(i,1,1000)) res[[length(res)+1]]<-(system.time(x<- dlply(dum, .variables=.(iddd),.parallel=FALSE))) } res <- do.call("rbind",res) plot(nrows, res[,"elapsed"]) plot(nrows*log(nrows), res[,"elapsed"]) nrows <- c(1e3,5e3, 1e4 ,5e4, 1e5 ,2e5) res<-list() for(i in nrows){ print(i) dum <- data.frame(x = runif(i,1,1000), y=runif(i,1,1000)) res[[length(res)+1]]<-(system.time(x<- split(dum, 1:nrow(dum)))) } res2 <- do.call("rbind",res) plot(nrows^2, res2[,"elapsed"]) nrows <- c(1e3,5e3, 1e4 ,5e4, 1e5 ,2e5, 1e6, 2e6) res <- list() for(i in nrows){ print(i) dum <- data.frame(iddd = 1:i, x = runif(i,1,1000), y=runif(i,1,1000)) print(dim(dum)) idx <- sample( i, 10000,replace = TRUE ) print(length(idx)) res[[length(res)+1]]<-(system.time(x<- dum[idx,])) } res3 <- do.call("rbind",res) plot(nrows, res3[,"elapsed"])
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.