[R-br] Trabalhar com muitos dados

Rubem Kaipper Ceratti rubem_ceratti em yahoo.com.br
Terça Outubro 16 14:30:58 BRT 2012


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)
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20121016/25b071f1/attachment.html>


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