eficiência de mem?==?UTF-8?Q?ória no R

prezados, boa noite. Venho por meio deste solicitar uma dica de como fazer a leitura(importação) de uma base de dados em formato txt, com caracteres separados por ; e com 29 colunas e 1.520.171 linhas no R, de uma maneira que não perca eficiência de memória. estou fazendo a leitura usando o comando: (dados <- read.table("SAJ_WIN1252.txt",header=T,dec=",",sep=";")) Como o arquivo tem 3Gb, o R demora uns 10 min para abri-lo, mas não consigo fazer mais nada porque o programa trava. Alguém teria dicas de como me ajudar? agradeço a atenção. Atenciosamente, Fátima Nascimento Estatística - UFRN Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN

Sugiro transformar em arquivo binário, tem como fazer no R. Ele cairia para 100Mb e conseguiria rodar. Há algum tempo já tive esta rotina, caso te interesse esta solução eu posso procurar e te enviar. prezados, boa noite. Venho por meio deste solicitar uma dica de como fazer a leitura(importação) de uma base de dados em formato txt, com caracteres separados por ; e com 29 colunas e 1.520.171 linhas no R, de uma maneira que não perca eficiência de memória. estou fazendo a leitura usando o comando: (dados <- read.table("SAJ_WIN1252.txt",header=T,dec=",",sep=";")) Como o arquivo tem 3Gb, o R demora uns 10 min para abri-lo, mas não consigo fazer mais nada porque o programa trava. Alguém teria dicas de como me ajudar? agradeço a atenção. Atenciosamente, Fátima Nascimento Estatística - UFRN Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN --- Este email foi escaneado pelo Avast antivírus. http://www.avast.com

interessa sim Mauro. Agradeço a atenção. Atenciosamente, Fátima Nascimento Estatística - CONRE nº 9439 Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN ---------- Original Message ----------- From: "Mauro Sznelwar" <sznelwar@uol.com.br> To: <r-br@listas.c3sl.ufpr.br>, <fatima.ppgcep@gmail.com> Sent: Thu, 14 May 2015 21:44:30 -0300 Subject: [R-br] RES: eficiência de mem?==?UTF-8?Q?ória no R
Sugiro transformar em arquivo binário, tem como fazer no R. Ele cairia para 100Mb e conseguiria rodar. Há algum tempo já tive esta rotina, caso te interesse esta solução eu posso procurar e te enviar.
prezados, boa noite.
Venho por meio deste solicitar uma dica de como fazer a leitura(importação) de uma base de dados em formato txt, com caracteres separados por ; e com 29 colunas e 1.520.171 linhas no R, de uma maneira que não perca eficiência de memória.
estou fazendo a leitura usando o comando:
(dados <- read.table("SAJ_WIN1252.txt",header=T,dec=",",sep=";"))
Como o arquivo tem 3Gb, o R demora uns 10 min para abri-lo, mas não consigo fazer mais nada porque o programa trava. Alguém teria dicas de como me ajudar?
agradeço a atenção.
Atenciosamente,
Fátima Nascimento Estatística - UFRN Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN
--- Este email foi escaneado pelo Avast antivírus. http://www.avast.com
_______________________________________________ R-br mailing list R-br@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. ------- End of Original Message -------

#Veja se ajuda. integer2binary <- function(x, min.digits=floor(logb(max(as.integer(x)), base = 2)) + 1) { xi <- int64::as.uint64(x) if(any(is.na(xi) | ((x-xi)!=0))) print(list(ERROR="x not integer", x=x)) N <- length(x) xMax <- max(int64::as.uint64(x)) ndigits <-max(min.digits,(floor(logb(xMax, base=2))+1)) Base.b <- array(NA, dim=c(N, ndigits)) for(i in 1:ndigits) { Base.b[, ndigits-i+1] <- (x %% 2) x <- (x %/% 2) } if(N ==1) Base.b[1, ] else Base.b } interessa sim Mauro. Agradeço a atenção. Atenciosamente, Fátima Nascimento Estatística - CONRE nº 9439 Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN
Sugiro transformar em arquivo binário, tem como fazer no R. Ele cairia para 100Mb e conseguiria rodar. Há algum tempo já tive esta rotina, caso te interesse esta solução eu posso procurar e te enviar.
prezados, boa noite.
Venho por meio deste solicitar uma dica de como fazer a leitura(importação) de uma base de dados em formato txt, com caracteres separados por ; e com 29 colunas e 1.520.171 linhas no R, de uma maneira que não perca eficiência de memória.
estou fazendo a leitura usando o comando:
(dados <- read.table("SAJ_WIN1252.txt",header=T,dec=",",sep=";"))
Como o arquivo tem 3Gb, o R demora uns 10 min para abri-lo, mas não consigo fazer mais nada porque o programa trava. Alguém teria dicas de como me ajudar?
agradeço a atenção.
Atenciosamente,
Fátima Nascimento Estatística - UFRN Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN
--- Este email foi escaneado pelo Avast antivírus. http://www.avast.com

Prezado Mauro, Também vou tentar essa sugestão. Muito obrigada pela atenção. Em breve envio notícias sobre os resultados . Atenciosamente, Fátima Nascimento Estatística - CONRE nº 9439 Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN ---------- Original Message ----------- From: "Mauro Sznelwar" <sznelwar@uol.com.br> To: <r-br@listas.c3sl.ufpr.br>, <fatima.ppgcep@gmail.com> Sent: Thu, 14 May 2015 23:03:58 -0300 Subject: [R-br] RES: RES: eficiência de m?=em?==?UTF-8?Q?=?UTF-8?Q?ória no R
#Veja se ajuda.
integer2binary <- function(x, min.digits=floor(logb(max(as.integer(x) ), base = 2)) + 1) { xi <- int64::as.uint64(x) if(any(is.na(xi) | ((x-xi)!=0))) print(list(ERROR="x not integer", x=x))
N <- length(x) xMax <- max(int64::as.uint64(x))
ndigits <-max(min.digits,(floor(logb(xMax, base=2))+1)) Base.b <- array(NA, dim=c(N, ndigits)) for(i in 1:ndigits) { Base.b[, ndigits-i+1] <- (x %% 2) x <- (x %/% 2) } if(N ==1) Base.b[1, ] else Base.b }
interessa sim Mauro.
Agradeço a atenção.
Atenciosamente,
Fátima Nascimento Estatística - CONRE nº 9439 Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN
Sugiro transformar em arquivo binário, tem como fazer no R. Ele cairia para 100Mb e conseguiria rodar. Há algum tempo já tive esta rotina, caso te interesse esta solução eu posso procurar e te enviar.
prezados, boa noite.
Venho por meio deste solicitar uma dica de como fazer a leitura(importação) de uma base de dados em formato txt, com caracteres separados por ; e com 29 colunas e 1.520.171 linhas no R, de uma maneira que não perca eficiência de memória.
estou fazendo a leitura usando o comando:
(dados <- read.table("SAJ_WIN1252.txt",header=T,dec=",",sep=";"))
Como o arquivo tem 3Gb, o R demora uns 10 min para abri-lo, mas não consigo fazer mais nada porque o programa trava. Alguém teria dicas de como me ajudar?
agradeço a atenção.
Atenciosamente,
Fátima Nascimento Estatística - UFRN Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN
--- Este email foi escaneado pelo Avast antivírus. http://www.avast.com
_______________________________________________ R-br mailing list R-br@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. ------- End of Original Message -------

Fátima, A minha sugestão é o comando fread do pacote data.table. Em um arquivo meu com cerca de cinco milhões de linhas e 15 colunas, ele reduziu o tempo de leitura de 14s para pouco mais de 1s em comparação com o comando base do R. A sintaxe do comando é basicamente a mesma do read.table. Se ele ainda não ajudar a ler o seu arquivo rápido o suficiente para as suas necessidades, ou se você tiver que ler vários desses arquivos programaticamente, a minha sugestão seria considerar usar algum pacote de banco de dados como o RODBC ou sqldf. Quanto à lentidão no seu computador, quanta memória RAM ele tem? Ler um arquivo de 3GB exige um mínimo de 4GB, sendo que 6GB ou 8GB seria ainda melhor. Saudações, Thiago. Sent from Yahoo Mail on Android From:"Fatima do Nascimento Silva" <fatima@ccet.ufrn.br> Date:Thu, May 14, 2015 at 7:35 PM Subject:[R-br] eficiência de mem?==?UTF-8?Q?ória no R prezados, boa noite. Venho por meio deste solicitar uma dica de como fazer a leitura(importação) de uma base de dados em formato txt, com caracteres separados por ; e com 29 colunas e 1.520.171 linhas no R, de uma maneira que não perca eficiência de memória. estou fazendo a leitura usando o comando: (dados <- read.table("SAJ_WIN1252.txt",header=T,dec=",",sep=";")) Como o arquivo tem 3Gb, o R demora uns 10 min para abri-lo, mas não consigo fazer mais nada porque o programa trava. Alguém teria dicas de como me ajudar? agradeço a atenção. Atenciosamente, Fátima Nascimento Estatística - UFRN Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN _______________________________________________ R-br mailing list R-br@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.

Prezado Thiago, Vou tentar também este comando para abrir o arquivo. Quanto à capacidade de memória, Meu computador tem 6Gb de memória RAM. Vou tentar esta sugestão. Agradeço a atenção. Atenciosamente, Fátima Nascimento Estatística - CONRE nº 9439 Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN ---------- Original Message ----------- From: "Thiago V. dos Santos" <thi_veloso@yahoo.com.br> To: "r-br@listas.c3sl.ufpr.br" <r-br@listas.c3sl.ufpr.br>, "r-br@listas.c3sl.ufpr.br" <r- br@listas.c3sl.ufpr.br> Sent: Thu, 14 May 2015 19:28:31 -0700 Subject: Re: [R-br] eficiência de mem?==?UTF-8?Q?ória no R
Fátima,
A minha sugestão é o comando fread do pacote data.table. Em um arquivo meu com cerca de cinco milhões de linhas e 15 colunas, ele reduziu o tempo de leitura de 14s para pouco mais de 1s em comparação com o comando base do R. A sintaxe do comando é basicamente a mesma do read.table.
Se ele ainda não ajudar a ler o seu arquivo rápido o suficiente para as suas necessidades, ou se você tiver que ler vários desses arquivos programaticamente, a minha sugestão seria considerar usar algum pacote de banco de dados como o RODBC ou sqldf.
Quanto à lentidão no seu computador, quanta memória RAM ele tem? Ler um arquivo de 3GB exige um mínimo de 4GB, sendo que 6GB ou 8GB seria ainda melhor.
Saudações,
Thiago.
Sent from Yahoo Mail on Android
From:"Fatima do Nascimento Silva" <fatima@ccet.ufrn.br> Date:Thu, May 14, 2015 at 7:35 PM Subject:[R-br] eficiência de mem?==?UTF-8?Q?ória no R
prezados, boa noite.
Venho por meio deste solicitar uma dica de como fazer a leitura(importação) de uma base de dados em formato txt, com caracteres separados por ; e com 29 colunas e 1.520.171 linhas no R, de uma maneira que não perca eficiência de memória.
estou fazendo a leitura usando o comando:
(dados <- read.table("SAJ_WIN1252.txt",header=T,dec=",",sep=";"))
Como o arquivo tem 3Gb, o R demora uns 10 min para abri-lo, mas não consigo fazer mais nada porque o programa trava. Alguém teria dicas de como me ajudar?
agradeço a atenção.
Atenciosamente,
Fátima Nascimento Estatística - UFRN Mestre em Ciência e Engª de Petróleo-PPGCEP/UFRN Doutoranda no Programa de Pós-Graduação em Ciência e Engª de Petróleo- PPGCEP/UFRN
_______________________________________________ R-br mailing list R-br@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. ------- End of Original Message -------
participantes (3)
-
Fatima do Nascimento Silva
-
Mauro Sznelwar
-
Thiago V. dos Santos