<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt"><div><span>Tem um pacote chamado ff que executa a leitura de arquivos grandes.</span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: transparent; font-style: normal; "><span><br></span></div><div style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: transparent; font-style: normal; ">Transforme seus dados para um arquivo .csv (caso não seja) e tente a leitura com este pacote.</div><div></div><div> </div><div><br></div><div>[ ]'s.</div><div><span style="font-size: 12pt; ">Edson Lira</span><br></div><div>Estatístico<br>Manaus-Amazonas</div><div class="yahoo_quoted"
style="display: block; "> <br> <br> <div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt; "> <div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 12pt; "> <div dir="ltr"> <font size="2" face="Arial"> Em Quarta-feira, 23 de Outubro de 2013 5:35, Elias T Krainski <eliaskrainski@yahoo.com.br> escreveu:<br> </font> </div> <div class="y_msg_container">Oi Luiz,<br clear="none"><br clear="none">O problema e' que vc tem 1000 niveis em cada um de dois fatores. Como a <br clear="none">funcao aov() usa a funcao lm(), esta monta a matriz de delineamento, ne <br clear="none">neste caso tem dimensao de um milhao por 1999. Para armazenar essa <br clear="none">matriz vc precisa de 14.9Gb<br clear="none"><br clear="none">print(object.size(double(1999))*1e6, unit='Gb')<br clear="none"><br clear="none">Se seu computador tivesse 16Gb de
memoria vc conseguiria fazer <br clear="none">calculando as estatistica suficientes X'X e X'y. Foi o que eu fiz e <br clear="none">enviei X'X e X'y no seu e-mail. Mas isso ainda nao 'e a melhor solucao <br clear="none">nesse caso particular.<br clear="none"><br clear="none">Como vc nao tem fator continuo, e' muito barato computacionalmente fazer <br clear="none">o quadro de anova calculando as expressoes de soma de quadrados.<br clear="none">Dessa forma vc consegue montar um quadro de anova facilmente num <br clear="none">computador com pouca memoria. Note que seu dado consiste em apenas dois <br clear="none">fatores e uma resposta continua, cada um com 1 milhao de registros. Isso <br clear="none">ocupa apenas 19.2Mb em memoria<br clear="none"><br clear="none">print(object.size(Data), un='Mb')<br clear="none"><br clear="none">Veja como montar o quadro de anova:<br clear="none"><br clear="none">attach(Data)<br clear="none">n <- length(y)<br
clear="none">ntr <- c(length(levels(block)), length(levels(Treat)))<br clear="none">gltot <- n-1<br clear="none">gltra <- ntr - 1<br clear="none">glres <- n - sum(ntr)<br clear="none"><br clear="none">correcao <- (sum(y)^2)/n<br clear="none">sqtot <- sum(y^2)-correcao<br clear="none">bltot <- tapply(y, block, sum)<br clear="none">trtot <- tapply(y, Treat, sum)<br clear="none"><br clear="none">sqbl <- sum(bltot^2)/ntr[2] - correcao<br clear="none">sqtr <- sum(trtot^2)/ntr[1] - correcao<br clear="none">sqres <- sqtot - sqbl - sqtr<br clear="none"><br clear="none">qmbl <- sqbl/gltra[1]<br clear="none">qmtr <- sqtr/gltra[2]<br clear="none">qmres <- sqres/glres<br clear="none"><br clear="none">fval <- c(qmbl, qmtr)/qmres<br clear="none">pval <- pf(fval, gltra, glres, lower.tail=FALSE)<br clear="none"><br clear="none">data.frame(gl=c(gltra, glres, gltot),<br clear="none">
sqt=c(sqbl, sqtr, sqres, sqtot),<br clear="none"> qm=c(qmbl, qmtr, qmres, NA),<br clear="none"> fval=c(fval, NA, NA),<br clear="none"> pval=c(pval, NA, NA))<br clear="none"><br clear="none"><br clear="none">On 10/22/2013 08:13 PM, Luiz Roberto Martins Pinto wrote:<br clear="none">> Caros companheiros da R-BR.<br clear="none">><br clear="none">> Não consigo fazer uma ANOVA com arquivo com 1e+06 registros.<br clear="none">> Então... preciso de ajuda!!!<br clear="none">><br clear="none">> Dados:<br clear="none">><br clear="none">> <a shape="rect" href="http://www1.datafilehost.com/d/c0d31775" target="_blank">http://www1.datafilehost.com/d/c0d31775</a><br clear="none">><br clear="none">> Meu pc<br clear="none">> R for windows 2.15.1(x64)<br clear="none">> 8 Gb de Memo<br clear="none">><br
clear="none">> load('RCBD_Data.Rdata') # Arquivo com 1e+06 registros<br clear="none">><br clear="none">> m=aov(y~Treat+block,data=Data)<br clear="none">> summary(m)<br clear="none">><br clear="none">> Mensagem de erro:<br clear="none">><br clear="none">> Erro: não é possível alocar vetor de tamanho 14.9 Gb<br clear="none">> Além disso: Mensagens de aviso perdidas:<br clear="none">> 1: In model.matrix.default(mt, mf, contrasts) :<br clear="none">> Reached total allocation of 8086Mb: see help(memory.size)<br clear="none">> 2: In model.matrix.default(mt, mf, contrasts) :<br clear="none">> Reached total allocation of 8086Mb: see help(memory.size)<br clear="none">> 3: In model.matrix.default(mt, mf, contrasts) :<br clear="none">> Reached total allocation of 8086Mb: see help(memory.size)<br clear="none">> 4: In model.matrix.default(mt, mf, contrasts) :<br
clear="none">> Reached total allocation of 8086Mb: see help(memory.size)<br clear="none">><br clear="none">><br clear="none">> Luiz Roberto Martins Pinto<br clear="none">> Prof. Pleno/DCET/UESC<br clear="none">> Laboratório de Estatística Computacional<br clear="none">> Universidade Estadual de Santa Cruz<br clear="none">> Ilhéus-Bahia<br clear="none">><br clear="none">> <a shape="rect" ymailto="mailto:luizroberto.uesc@gmail.com" href="mailto:luizroberto.uesc@gmail.com">luizroberto.uesc@gmail.com</a> <mailto:<a shape="rect" ymailto="mailto:luizroberto.uesc@gmail.com" href="mailto:luizroberto.uesc@gmail.com">luizroberto.uesc@gmail.com</a>><br clear="none">> skype: lrmpinto<br clear="none">> <a shape="rect" href="http://lattes.cnpq.br/2732314327604831" target="_blank">http://lattes.cnpq.br/2732314327604831</a><br clear="none">><br clear="none">><br clear="none">><br clear="none">><br
clear="none">> _______________________________________________<br clear="none">> R-br mailing list<br clear="none">> <a shape="rect" ymailto="mailto:R-br@listas.c3sl.ufpr.br" href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br clear="none">> <a shape="rect" href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br clear="none">> Leia o guia de postagem (<a shape="rect" href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<div class="yqt0080852738" id="yqtfd82534"><br clear="none">><br clear="none">_______________________________________________<br clear="none">R-br mailing list<br clear="none"><a shape="rect" ymailto="mailto:R-br@listas.c3sl.ufpr.br" href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br clear="none"><a shape="rect"
href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br clear="none">Leia o guia de postagem (<a shape="rect" href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</div><br><br></div> </div> </div> </div> </div></body></html>