[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