[R-br] Trabalhar com muitos dados

Fernando Mayer fernandomayer em gmail.com
Terça Outubro 16 19:02:53 BRT 2012


Roney,

quanto à sua 3a questão, talvez isso possa ajudar a liberar a memória

1) gc(reset = TRUE) # para o R liberar a memória para o SO
2) no terminal:  sudo sync; echo 3 > /proc/sys/vm/drop_caches
(confira com free -m antes e depois desse comando)

Isso vai liberar o cache da memória RAM e da swap. Você pode fazer um
shell script para automatizar o (2). Mais detalhes sobre o
drop_caches:

http://www.linuxinsight.com/proc_sys_vm_drop_caches.html
http://people.arsc.edu/~kcarlson/software/man/drop_caches.html

[]s,

---
Fernando Mayer
Universidade Federal de Santa Catarina - UFSC
Departamento de Ecologia e Zoologia - ECZ/CCB
URL: http://fernandomayer.github.com
e-mail: fernandomayer [@] gmail.com


2012/10/16 Rubem Kaipper Ceratti <rubem_ceratti em yahoo.com.br>:
> Roney,
>
> eu escrevi um exemplo abaixo baseado em scripts que eu tenho aqui. Não sei
> se vai servir no seu caso, mas é um caminho. Essencialmente, para ler os
> dados, as opções apresentadas são os pacotes sqldf e ff (e ffbase para
> algumas funções úteis) e biglm para a regressão.
>
> Att.,
> Rubem
>
>
> library(sqldf)
> library(biglm)
> library(ffbase)
>
> # Criando dados fictícios
> id <- 1:1e5
> xy <- matrix(rnorm(11e5),1e5,11)
> dat0 <- cbind(id, xy)
>
> dat <- as.data.frame(dat0)
> names(dat) <- c('id', 'y', paste('x',1:10,sep=""))
>
> write.csv(dat, 'dat.teste.csv', row.names=F)
>
> ## Passando os dados para um formato de base de dados
> sqldf("attach dbtest as new")
> read.csv.sql("dat.teste.csv", "create table main as select * from file",
>              dbname="dbtest")
>
> ## Lendo os dados via query e ajustando modelo de regressão
> drv<-dbDriver("SQLite")
>
> con<-dbConnect(drv, dbname='dbtest')
> dbListTables(con)
>
> # "head()"
> dbGetQuery(con, "select * from main limit 6")
>
> m0<-bigglm(y~x1+x2, data=con, tablename='main', chunksize=5e4)
> summary(m0)
>
> dbDisconnect(con)
>
>
> ## Alternativamente: Lendo de um arquivo CSV
> cc<-c('factor',rep('numeric',11))
> tes.dat<-read.table.ffdf(file='dat.teste.csv', FUN='read.csv',
>                          colClasses=cc,na.strings="")
>
> # Subconjunto de dados
> tes.dat2<-subset(tes.dat, tes.dat$y > 1)
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código
> mínimo reproduzível.


Mais detalhes sobre a lista de discussão R-br