[R-br] lendo de csv

Benilton Carvalho beniltoncarvalho em gmail.com
Quarta Fevereiro 22 20:23:59 BRST 2012


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