library(bigtabulate) library(bigmemory) library(biglm) library(biganalytics) library(bench) library(ff) ######### # Archivo de 29 Mb archivo0 = "Desktop/R ZORA Ejemplos/CLASE 1/minitrain.csv" # Archivo de 15 Gb archivo1 = "Desktop/R ZORA Ejemplos/CLASE 1/train_data2.csv" bd = read.big.matrix(archivo0,type='double', header = TRUE,sep = ",", backingfile="bd1.bin", # representación binaria de la matriz en el disco descriptorfile="bd1.desc", # metadata ) dim(bd) object.size(bd) # Tablas de frecuencias en intervalos bd1 = bigtable(bd, ccols=c(10, 5), breaks=list(5, 3)) bd1 # Mayor control del intervalo bd2 = binit(bd, 3:4, list(c(-0.5,2,5), c(-1,3,2))) bd2$counts bd2$rowbreaks bd2$colbreaks #### biglm #### # Regresion con columnas del objeto bigmatrix tb1 = Sys.time() bdlm = biglm.big.matrix(B_1~R_1+D_42,bd) tb2 = Sys.time() tb = tb2 - tb1 tb #### lm en un data.frame #### # convertimos las columnas a usar del objeto bigmatrix a data.frame dd = data.frame(bd[,c('B_1','R_1','D_42')]) is(dd) head(dd) # Regresion con columnas del objeto data.fra td1 = Sys.time() ddlm = lm(B_1~R_1+D_42,dd) td2 = Sys.time() td = td2 - td1 td # Comparacion de tiempos (es más lento con el objeto bigmatrix) compara = c(tb,td) names(compara) = c('Big.Matrix','Arreglo') compara # Varias iteraciones ben1 = bench::mark( bdlm = biglm.big.matrix(B_1~R_1+D_42,bd), iterations = 10 ) ben2 = bench::mark( ddlm = lm(B_1~R_1+D_42,dd), iterations = 10 ) ben = rbind(ben1,ben2) tiempos = crbind(ben$time) dimnames(tiempos)[[1]] = c('Big.Matrix','Arreglo') tiempos apply(tiempos,1,mean)