[R-br] lendo de csv

Leonard de Assis assis.leonard em gmail.com
Quarta Fevereiro 22 22:12:02 BRST 2012


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 em 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 em 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.


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