Error in scan - line 666895 did not have 12 elements

Caros, Boa tarde! Estou tendo dificuldades para importar uma base de dados da RAIS que tenho que trabalhar no R. Trata-se de uma base com mais de um 1GB, com 12 variáveis, separadas por espaços fixos. Estou usando o comando abaixo: rais96<-read.fwf("rais.txt", widths = c(1,14,5,10,12,6,1,45,18,52,19,8), sep="\t", h=FALSE, stringsAsFactors=FALSE, comment.char='') Após vários minutos tem me retornado a mensagem abaixo: Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : line 666895 did not have 12 elements Estou usando o parâmetro comment.char='' porque existem caracteres # utilizados para observações vazias. Eu não consigo abrir esse arquivo .txt no bloco de notas para analisar a linha com erro. Existe alguma forma de eu conseguir no R acessar essa linha específica para ver se tem algum erro? Você podem me dar alguma dica de como resolver esse problema? Obrigado pela ajuda de sempre. Abraços -- Adriano Borges Costa

Adriano, da um scan('rais.txt', skip=666890, n=10) e ve se ele tem o mesmo tamanho das demais (isso vai pegar 10 linhas, incluindo a problematica). Para ver se tem o mesmo tamanho da para usar nchar(scan('rais.txt', skip=666890, n=10)) 2013/7/24 Adriano Borges Costa <adrianobfc@gmail.com>
Caros,
Boa tarde!
Estou tendo dificuldades para importar uma base de dados da RAIS que tenho que trabalhar no R. Trata-se de uma base com mais de um 1GB, com 12 variáveis, separadas por espaços fixos.
Estou usando o comando abaixo: rais96<-read.fwf("rais.txt", widths = c(1,14,5,10,12,6,1,45,18,52,19,8), sep="\t", h=FALSE, stringsAsFactors=FALSE, comment.char='')
Após vários minutos tem me retornado a mensagem abaixo: Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : line 666895 did not have 12 elements
Estou usando o parâmetro comment.char='' porque existem caracteres # utilizados para observações vazias.
Eu não consigo abrir esse arquivo .txt no bloco de notas para analisar a linha com erro. Existe alguma forma de eu conseguir no R acessar essa linha específica para ver se tem algum erro? Você podem me dar alguma dica de como resolver esse problema?
Obrigado pela ajuda de sempre.
Abraços
-- Adriano Borges Costa
_______________________________________________ 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.

Caro Rodrigo, Obrigado pela resposta. Acabei viajando e pude apenas agora testar o que você me indicou. Dei um scan como você me indicou e a resposta foi a seguinte:
scan("rais96.txt", skip=666890, n=10)Erro em scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : scan() esperava 'a real', obteve '100941853000128522480000000003SP'
Você pode me ajudar a entender o que aconteceu? Obrigado Adriano Em 24 de julho de 2013 13:33, Rodrigo Coster <rcoster@gmail.com> escreveu:
Adriano,
da um scan('rais.txt', skip=666890, n=10) e ve se ele tem o mesmo tamanho das demais (isso vai pegar 10 linhas, incluindo a problematica). Para ver se tem o mesmo tamanho da para usar nchar(scan('rais.txt', skip=666890, n=10))
2013/7/24 Adriano Borges Costa <adrianobfc@gmail.com>
Caros,
Boa tarde!
Estou tendo dificuldades para importar uma base de dados da RAIS que tenho que trabalhar no R. Trata-se de uma base com mais de um 1GB, com 12 variáveis, separadas por espaços fixos.
Estou usando o comando abaixo: rais96<-read.fwf("rais.txt", widths = c(1,14,5,10,12,6,1,45,18,52,19,8), sep="\t", h=FALSE, stringsAsFactors=FALSE, comment.char='')
Após vários minutos tem me retornado a mensagem abaixo: Error in scan(file, what, nmax, sep, dec, quote, skip, nlines, na.strings, : line 666895 did not have 12 elements
Estou usando o parâmetro comment.char='' porque existem caracteres # utilizados para observações vazias.
Eu não consigo abrir esse arquivo .txt no bloco de notas para analisar a linha com erro. Existe alguma forma de eu conseguir no R acessar essa linha específica para ver se tem algum erro? Você podem me dar alguma dica de como resolver esse problema?
Obrigado pela ajuda de sempre.
Abraços
-- Adriano Borges Costa
_______________________________________________ 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.
-- Adriano Borges Costa

Adriano, Falha minha... o scan() funciona só com numeros, o que tu precisa é readLines(). A desvantagem é que nao temos como pular linhas, então vamos ter que ler todo o arquivo até a linha com problema test <- readLines("rais96.txt", n=666895) nchar(tail(teste)) # Se todos forem iguais, importante ver qual que é o que tem na linha 666895 teste[666895] []'s

Acho que dá para usar o scan() sim, se informarmos à função que o que será lido é caractere, definindo argumento what = "character". Acho que é isso. Abs. Em 25 de julho de 2013 14:33, Rodrigo Coster <rcoster@gmail.com> escreveu:
Adriano,
Falha minha... o scan() funciona só com numeros, o que tu precisa é readLines(). A desvantagem é que nao temos como pular linhas, então vamos ter que ler todo o arquivo até a linha com problema
test <- readLines("rais96.txt", n=666895) nchar(tail(teste)) # Se todos forem iguais, importante ver qual que é o que tem na linha 666895 teste[666895]
[]'s
_______________________________________________ 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.
-- Marcos F. Silva http://sites.google.com/site/marcosfs2006
participantes (3)
-
Adriano Borges Costa
-
Marcos Silva
-
Rodrigo Coster