#------------------------------------------------------------------------------- # SIMPLE LISTS #------------------------------------------------------------------------------- src <- list(DF=data.frame(A=c(1,2)), vec=c("a", "b")) src <- list(src,src) flatten(src) # /SIMPLE LISTS ---------- #------------------------------------------------------------------------------- # NESTED LISTS #------------------------------------------------------------------------------- src <- list(a=list(a.1=list(a.1.1=list(a.1.1.1=1, a.1.1.1=2, a.1.1.1=3), a.1.2=1, a.1.2=2, a.1.2=3), a.2=list(a.2.1=list())), b=NULL, c=data.frame(a=1:3, b=3:5) ) flatten(src) flatten(src, start.after=1) flatten(src, start.after=1, .do.debug=TRUE) flatten(src, start.after=2) flatten(src, start.after=3) flatten(src, start.after=4) flatten(src, stop.at=1) flatten(src, stop.at=2) flatten(src, stop.at=3) flatten(src, stop.at=4) flatten(src, start.after=1, stop.at=1) flatten(src, start.after=1, stop.at=2) flatten(src, start.after=1, stop.at=3) flatten(src, start.after=1, stop.at=4) flatten(src, start.after=2, stop.at=4) flatten(src, do.index=TRUE) flatten(src, do.index=TRUE, do.return.index=TRUE) # PROFILE require(microbenchmark) prfl <- microbenchmark(flatten(src)) median(prfl$time)/1000000000 prfl <- microbenchmark(flatten(src, do.index=TRUE)) median(prfl$time)/1000000000 prfl <- microbenchmark(flatten(src, do.index=TRUE, do.return.index=TRUE)) median(prfl$time)/1000000000 # / # /NESTED LISTS ---------- #------------------------------------------------------------------------------- # ENVIRONMENTS #------------------------------------------------------------------------------- envir <- new.env() envir$a <- new.env() envir$a$a.1 <- new.env() envir$a$a.1$a.1.1 <- new.env() envir$a$a.1$a.1.1$a.1.1.1 <- NA envir$a$a.1$a.1.2 <- 5 envir$a$a.2 <- new.env() envir$a$a.2$a.2.1 <- list() envir$b <- NULL envir$c <- data.frame(a=1:3, b=3:5) envirToList(src=envir) flatten(envir) flatten(envir, start.after=1) flatten(envir, start.after=1, .do.debug=TRUE) flatten(envir, start.after=2) flatten(envir, start.after=3) flatten(envir, start.after=4) flatten(envir, stop.at=1) flatten(envir, stop.at=2) flatten(envir, stop.at=3) flatten(envir, stop.at=4) flatten(envir, start.after=1, stop.at=1) flatten(envir, start.after=1, stop.at=2) flatten(envir, start.after=1, stop.at=3) flatten(envir, start.after=1, stop.at=4) flatten(envir, do.index=TRUE) flatten(envir, do.index=TRUE, do.return.index=TRUE) # PROFILE require(microbenchmark) prfl <- microbenchmark(flatten(envir)) median(prfl$time)/1000000000 prfl <- microbenchmark(flatten(envir, do.index=TRUE)) median(prfl$time)/1000000000 prfl <- microbenchmark(flatten(envir, do.index=TRUE, do.return.index=TRUE)) median(prfl$time)/1000000000 # / # /ENVIRONMENTS ----------