
Possuo um csv (+- 350 000 registros) com a seguinte 'xara': "137831","4/12/2006 17:30:47","0","ENTRE 50 e 100","","","-1","1" "137549","4/12/2006 11:13:26","0","ENTRE 50 e 100","","","-1","1" "137936","4/12/2006 19:58:57","0","ENTRE 50 e 100","","","-1","1" "137661","4/12/2006 13:51:43","0","ENTRE 50 e 100","","","-1","1" "138046","4/12/2006 23:35:00","0","ENTRE 100 e 200","","","-1","1" "140275","8/12/2006 17:15:22","0","ENTRE 50 e 100","","","-1","1" "137837","4/12/2006 17:36:06","0","ENTRE 50 e 100","","","-1","1" "138210","5/12/2006 12:02:20","0","ENTRE 50 e 100","","","-1","1" depois de alguns milhares de regístros (105296 regístros depois), ele adquire o seguinte formato: "2144767","6/3/2008","0","ENTRE 1600 e 3200","LJ","SITE","1","1" "2144768","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144769","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","2","1" "2144770","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144771","6/3/2008","0","ENTRE 400 e 800","LJ","TVEN","1","1" "2144772","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144773","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","1","1" "2144774","6/3/2008","0","ENTRE 400 e 800","LJ","SITE","1","1" mas o problema não chegou a ser essa mudança repentina no formato da data (creio que existirá um sério problema referente a isto ainda), o problema é um pouco antes: rodei o seguinte código: reg1 <- read.table( file="CSV/REG0001.csv", header=FALSE, colClasses= c('integer', 'POSIXct', 'integer', 'factor', 'factor', 'factor', 'integer', 'integer'), sep=',', quote='\"', dec=',' ) aí, ao executar, sou surpreendido com o seguinte erro: Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : scan() expected 'an integer', got '"155638"' "155638" é a 1ª linha, 1ª variável do CSV aí vem a pergunta: Como fazer o R entender que precisa ignorar estas '"' ao ler o csv? -- []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com

putz... isso eh inconveniente... a avaliacao das classes ta acontecendo antes da avaliacao do quote... =/ faca em dois passos: 1) use o read.table() sem colClasses, mas usando stringsAsFactors=FALSE 2) converta as colunas relevantes para factor e POSIXct b 2012/2/22 Leonard de Assis <assis.leonard@gmail.com>:
Possuo um csv (+- 350 000 registros) com a seguinte 'xara':
"137831","4/12/2006 17:30:47","0","ENTRE 50 e 100","","","-1","1" "137549","4/12/2006 11:13:26","0","ENTRE 50 e 100","","","-1","1" "137936","4/12/2006 19:58:57","0","ENTRE 50 e 100","","","-1","1" "137661","4/12/2006 13:51:43","0","ENTRE 50 e 100","","","-1","1" "138046","4/12/2006 23:35:00","0","ENTRE 100 e 200","","","-1","1" "140275","8/12/2006 17:15:22","0","ENTRE 50 e 100","","","-1","1" "137837","4/12/2006 17:36:06","0","ENTRE 50 e 100","","","-1","1" "138210","5/12/2006 12:02:20","0","ENTRE 50 e 100","","","-1","1"
depois de alguns milhares de regístros (105296 regístros depois), ele adquire o seguinte formato:
"2144767","6/3/2008","0","ENTRE 1600 e 3200","LJ","SITE","1","1" "2144768","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144769","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","2","1" "2144770","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144771","6/3/2008","0","ENTRE 400 e 800","LJ","TVEN","1","1" "2144772","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144773","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","1","1" "2144774","6/3/2008","0","ENTRE 400 e 800","LJ","SITE","1","1"
mas o problema não chegou a ser essa mudança repentina no formato da data (creio que existirá um sério problema referente a isto ainda), o problema é um pouco antes:
rodei o seguinte código:
reg1 <- read.table( file="CSV/REG0001.csv", header=FALSE, colClasses= c('integer', 'POSIXct', 'integer', 'factor', 'factor', 'factor', 'integer', 'integer'), sep=',', quote='\"', dec=',' ) aí, ao executar, sou surpreendido com o seguinte erro:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : scan() expected 'an integer', got '"155638"'
"155638" é a 1ª linha, 1ª variável do CSV
aí vem a pergunta: Como fazer o R entender que precisa ignorar estas '"' ao ler o csv?
-- []s Leonard de Assis assis <dot> leonard <at> gmail <dot> 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.

Benilton, em teoria era pra funcionar sem precisar desta "Gambiarra". Acho até legal consultar o 'Core team' sobre este pequeno inconveniente, acredito que seja merecedor de uma implementação para suprir este problema (O CSV foi gerado pelo Oracle e supostamente estava em um padrão ISO) Fazendo em 2 etapas funcionou bem. Levou o dobro do tempo, mas funcionou. []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 22/02/2012 20:23, Benilton Carvalho escreveu:
putz... isso eh inconveniente... a avaliacao das classes ta acontecendo antes da avaliacao do quote... =/
faca em dois passos:
1) use o read.table() sem colClasses, mas usando stringsAsFactors=FALSE 2) converta as colunas relevantes para factor e POSIXct
b
2012/2/22 Leonard de Assis <assis.leonard@gmail.com>:
Possuo um csv (+- 350 000 registros) com a seguinte 'xara':
"137831","4/12/2006 17:30:47","0","ENTRE 50 e 100","","","-1","1" "137549","4/12/2006 11:13:26","0","ENTRE 50 e 100","","","-1","1" "137936","4/12/2006 19:58:57","0","ENTRE 50 e 100","","","-1","1" "137661","4/12/2006 13:51:43","0","ENTRE 50 e 100","","","-1","1" "138046","4/12/2006 23:35:00","0","ENTRE 100 e 200","","","-1","1" "140275","8/12/2006 17:15:22","0","ENTRE 50 e 100","","","-1","1" "137837","4/12/2006 17:36:06","0","ENTRE 50 e 100","","","-1","1" "138210","5/12/2006 12:02:20","0","ENTRE 50 e 100","","","-1","1"
depois de alguns milhares de regístros (105296 regístros depois), ele adquire o seguinte formato:
"2144767","6/3/2008","0","ENTRE 1600 e 3200","LJ","SITE","1","1" "2144768","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144769","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","2","1" "2144770","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144771","6/3/2008","0","ENTRE 400 e 800","LJ","TVEN","1","1" "2144772","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144773","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","1","1" "2144774","6/3/2008","0","ENTRE 400 e 800","LJ","SITE","1","1"
mas o problema não chegou a ser essa mudança repentina no formato da data (creio que existirá um sério problema referente a isto ainda), o problema é um pouco antes:
rodei o seguinte código:
reg1 <- read.table( file="CSV/REG0001.csv", header=FALSE, colClasses= c('integer', 'POSIXct', 'integer', 'factor', 'factor', 'factor', 'integer', 'integer'), sep=',', quote='\"', dec=',' ) aí, ao executar, sou surpreendido com o seguinte erro:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : scan() expected 'an integer', got '"155638"'
"155638" é a 1ª linha, 1ª variável do CSV
aí vem a pergunta: Como fazer o R entender que precisa ignorar estas '"' ao ler o csv?
-- []s Leonard de Assis assis <dot> leonard <at> gmail <dot> 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.

acho q vale um forward da sua pergunta p r-help... vai q tem um jeito q nao estamos enxergando... :) 2012/2/23 Leonard de Assis <assis.leonard@gmail.com>:
Benilton,
em teoria era pra funcionar sem precisar desta "Gambiarra". Acho até legal consultar o 'Core team' sobre este pequeno inconveniente, acredito que seja merecedor de uma implementação para suprir este problema (O CSV foi gerado pelo Oracle e supostamente estava em um padrão ISO)
Fazendo em 2 etapas funcionou bem. Levou o dobro do tempo, mas funcionou.
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 22/02/2012 20:23, Benilton Carvalho escreveu:
putz... isso eh inconveniente... a avaliacao das classes ta acontecendo antes da avaliacao do quote... =/
faca em dois passos:
1) use o read.table() sem colClasses, mas usando stringsAsFactors=FALSE 2) converta as colunas relevantes para factor e POSIXct
b
2012/2/22 Leonard de Assis <assis.leonard@gmail.com>:
Possuo um csv (+- 350 000 registros) com a seguinte 'xara':
"137831","4/12/2006 17:30:47","0","ENTRE 50 e 100","","","-1","1" "137549","4/12/2006 11:13:26","0","ENTRE 50 e 100","","","-1","1" "137936","4/12/2006 19:58:57","0","ENTRE 50 e 100","","","-1","1" "137661","4/12/2006 13:51:43","0","ENTRE 50 e 100","","","-1","1" "138046","4/12/2006 23:35:00","0","ENTRE 100 e 200","","","-1","1" "140275","8/12/2006 17:15:22","0","ENTRE 50 e 100","","","-1","1" "137837","4/12/2006 17:36:06","0","ENTRE 50 e 100","","","-1","1" "138210","5/12/2006 12:02:20","0","ENTRE 50 e 100","","","-1","1"
depois de alguns milhares de regístros (105296 regístros depois), ele adquire o seguinte formato:
"2144767","6/3/2008","0","ENTRE 1600 e 3200","LJ","SITE","1","1" "2144768","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144769","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","2","1" "2144770","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144771","6/3/2008","0","ENTRE 400 e 800","LJ","TVEN","1","1" "2144772","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144773","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","1","1" "2144774","6/3/2008","0","ENTRE 400 e 800","LJ","SITE","1","1"
mas o problema não chegou a ser essa mudança repentina no formato da data (creio que existirá um sério problema referente a isto ainda), o problema é um pouco antes:
rodei o seguinte código:
reg1 <- read.table( file="CSV/REG0001.csv", header=FALSE, colClasses= c('integer', 'POSIXct', 'integer', 'factor', 'factor', 'factor', 'integer', 'integer'), sep=',', quote='\"', dec=',' ) aí, ao executar, sou surpreendido com o seguinte erro:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : scan() expected 'an integer', got '"155638"'
"155638" é a 1ª linha, 1ª variável do CSV
aí vem a pergunta: Como fazer o R entender que precisa ignorar estas '"' ao ler o csv?
-- []s Leonard de Assis assis <dot> leonard <at> gmail <dot> 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.

Eu pensei em usar scan direto, mas eu ia acabar tendo que escrever o parser na mão. Achei mais prático e rápido o jeito lento, lendo tudo como string e convertendo a posteriori, nem arrisquei o outro jeito. Este era o csv 1 de 202, eu tenho que dar merge neles depois para analisar. Ao todo vai ficar pequeno, pois em csv, ocupam 780mb do hd em suma: são 550 mil registros cada um, sendo que no meio do caminho, algumas políticas de coleta mudam (vide a data) amanhã, com calma, descrevo o problema na lista mundial, eheheh []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 22/02/2012 22:16, Benilton Carvalho escreveu:
acho q vale um forward da sua pergunta p r-help... vai q tem um jeito q nao estamos enxergando... :)
2012/2/23 Leonard de Assis <assis.leonard@gmail.com>:
Benilton,
em teoria era pra funcionar sem precisar desta "Gambiarra". Acho até legal consultar o 'Core team' sobre este pequeno inconveniente, acredito que seja merecedor de uma implementação para suprir este problema (O CSV foi gerado pelo Oracle e supostamente estava em um padrão ISO)
Fazendo em 2 etapas funcionou bem. Levou o dobro do tempo, mas funcionou.
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 22/02/2012 20:23, Benilton Carvalho escreveu:
putz... isso eh inconveniente... a avaliacao das classes ta acontecendo antes da avaliacao do quote... =/
faca em dois passos:
1) use o read.table() sem colClasses, mas usando stringsAsFactors=FALSE 2) converta as colunas relevantes para factor e POSIXct
b
2012/2/22 Leonard de Assis <assis.leonard@gmail.com>:
Possuo um csv (+- 350 000 registros) com a seguinte 'xara':
"137831","4/12/2006 17:30:47","0","ENTRE 50 e 100","","","-1","1" "137549","4/12/2006 11:13:26","0","ENTRE 50 e 100","","","-1","1" "137936","4/12/2006 19:58:57","0","ENTRE 50 e 100","","","-1","1" "137661","4/12/2006 13:51:43","0","ENTRE 50 e 100","","","-1","1" "138046","4/12/2006 23:35:00","0","ENTRE 100 e 200","","","-1","1" "140275","8/12/2006 17:15:22","0","ENTRE 50 e 100","","","-1","1" "137837","4/12/2006 17:36:06","0","ENTRE 50 e 100","","","-1","1" "138210","5/12/2006 12:02:20","0","ENTRE 50 e 100","","","-1","1"
depois de alguns milhares de regístros (105296 regístros depois), ele adquire o seguinte formato:
"2144767","6/3/2008","0","ENTRE 1600 e 3200","LJ","SITE","1","1" "2144768","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144769","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","2","1" "2144770","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144771","6/3/2008","0","ENTRE 400 e 800","LJ","TVEN","1","1" "2144772","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144773","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","1","1" "2144774","6/3/2008","0","ENTRE 400 e 800","LJ","SITE","1","1"
mas o problema não chegou a ser essa mudança repentina no formato da data (creio que existirá um sério problema referente a isto ainda), o problema é um pouco antes:
rodei o seguinte código:
reg1 <- read.table( file="CSV/REG0001.csv", header=FALSE, colClasses= c('integer', 'POSIXct', 'integer', 'factor', 'factor', 'factor', 'integer', 'integer'), sep=',', quote='\"', dec=',' ) aí, ao executar, sou surpreendido com o seguinte erro:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : scan() expected 'an integer', got '"155638"'
"155638" é a 1ª linha, 1ª variável do CSV
aí vem a pergunta: Como fazer o R entender que precisa ignorar estas '"' ao ler o csv?
-- []s Leonard de Assis assis <dot> leonard <at> gmail <dot> 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.

Curiosamente funciona: reg1 <- read.table(file='CSV/REG0001.csv', header=FALSE, colClasses= c(NA, 'POSIXct', NA, NA, NA, NA, NA, NA), sep=',', quote='\"', dec=',') Verifiquei com: sapply(head(reg1), class) e obtive: $V1 [1] "integer" $V2 [1] "POSIXct" "POSIXt" $V3 [1] "integer" $V4 [1] "factor" $V5 [1] "factor" $V6 [1] "factor" $V7 [1] "integer" $V8 [1] "integer" Att. Alexandre On Feb 22, 2012, at 10:31 PM, Leonard de Assis wrote:
Eu pensei em usar scan direto, mas eu ia acabar tendo que escrever o parser na mão. Achei mais prático e rápido o jeito lento, lendo tudo como string e convertendo a posteriori, nem arrisquei o outro jeito.
Este era o csv 1 de 202, eu tenho que dar merge neles depois para analisar. Ao todo vai ficar pequeno, pois em csv, ocupam 780mb do hd
em suma: são 550 mil registros cada um, sendo que no meio do caminho, algumas políticas de coleta mudam (vide a data)
amanhã, com calma, descrevo o problema na lista mundial, eheheh
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 22/02/2012 22:16, Benilton Carvalho escreveu:
acho q vale um forward da sua pergunta p r-help... vai q tem um jeito q nao estamos enxergando... :)
2012/2/23 Leonard de Assis <assis.leonard@gmail.com>:
Benilton,
em teoria era pra funcionar sem precisar desta "Gambiarra". Acho até legal consultar o 'Core team' sobre este pequeno inconveniente, acredito que seja merecedor de uma implementação para suprir este problema (O CSV foi gerado pelo Oracle e supostamente estava em um padrão ISO)
Fazendo em 2 etapas funcionou bem. Levou o dobro do tempo, mas funcionou.
[]s Leonard de Assis assis <dot> leonard <at> gmail <dot> com
Em 22/02/2012 20:23, Benilton Carvalho escreveu:
putz... isso eh inconveniente... a avaliacao das classes ta acontecendo antes da avaliacao do quote... =/
faca em dois passos:
1) use o read.table() sem colClasses, mas usando stringsAsFactors=FALSE 2) converta as colunas relevantes para factor e POSIXct
b
2012/2/22 Leonard de Assis <assis.leonard@gmail.com>:
Possuo um csv (+- 350 000 registros) com a seguinte 'xara':
"137831","4/12/2006 17:30:47","0","ENTRE 50 e 100","","","-1","1" "137549","4/12/2006 11:13:26","0","ENTRE 50 e 100","","","-1","1" "137936","4/12/2006 19:58:57","0","ENTRE 50 e 100","","","-1","1" "137661","4/12/2006 13:51:43","0","ENTRE 50 e 100","","","-1","1" "138046","4/12/2006 23:35:00","0","ENTRE 100 e 200","","","-1","1" "140275","8/12/2006 17:15:22","0","ENTRE 50 e 100","","","-1","1" "137837","4/12/2006 17:36:06","0","ENTRE 50 e 100","","","-1","1" "138210","5/12/2006 12:02:20","0","ENTRE 50 e 100","","","-1","1"
depois de alguns milhares de regístros (105296 regístros depois), ele adquire o seguinte formato:
"2144767","6/3/2008","0","ENTRE 1600 e 3200","LJ","SITE","1","1" "2144768","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144769","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","2","1" "2144770","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144771","6/3/2008","0","ENTRE 400 e 800","LJ","TVEN","1","1" "2144772","6/3/2008","0","ENTRE 200 e 400","LJ","SITE","1","1" "2144773","6/3/2008","0","ENTRE 100 e 200","LJ","SITE","1","1" "2144774","6/3/2008","0","ENTRE 400 e 800","LJ","SITE","1","1"
mas o problema não chegou a ser essa mudança repentina no formato da data (creio que existirá um sério problema referente a isto ainda), o problema é um pouco antes:
rodei o seguinte código:
reg1 <- read.table( file="CSV/REG0001.csv", header=FALSE, colClasses= c('integer', 'POSIXct', 'integer', 'factor', 'factor', 'factor', 'integer', 'integer'), sep=',', quote='\"', dec=',' ) aí, ao executar, sou surpreendido com o seguinte erro:
Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : scan() expected 'an integer', got '"155638"'
"155638" é a 1ª linha, 1ª variável do CSV
aí vem a pergunta: Como fazer o R entender que precisa ignorar estas '"' ao ler o csv?
-- []s Leonard de Assis assis <dot> leonard <at> gmail <dot> 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.
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.
participantes (3)
-
Alexandre S. G. Coelho
-
Benilton Carvalho
-
Leonard de Assis