[R-br] Problema ao ler arquivo UTF-16 com nulos
Roberto de Pinho
robertodepinho em gmail.com
Quinta Novembro 1 05:18:56 BRST 2012
Caro Daniel,
A sua importação deixa escapar o restante dos dados da primeira linha, por
exemplo.
Há valores não nulos que foram não lidos pois, como disse na mensagem
original:
"No entanto, ele reconhece prematuramente fins de linhas em algumas linhas
quando encontra campos com nulo [00 00]. Há valores não nulos não sendo
lidos após campos nulos que provocam o reconhecimento de fim de linha".
No "resto"da primeira linha ainda há:
6271 FUNDACAO UNIVERSIDADE DE BRASILIA 15000 MINISTERIO DA EDUCACAO
HOSP-HOSPITAL
UNIVERSITARIO DE BRASILIA 26271 FUNDACAO UNIVERSIDADE DE BRASILIA
15000 MINISTERIO
DA EDUCACAO 3 SEM VINCULO
Não informada Não informada RESIDENCIA MULTIPROFISSIONAL 40 HORAS SEMANAIS
Que não está sendo lido e ignorado por conta do fill = T.
====
Resolvi fazendo um programa em C que tira os nulos e substitui por espaços
(abaixo).
Com isto, o arquivo é lido mesmo sem o fill:
url = "~/Downloads/teste2.csv"
y = read.table(url, header = T,
sep="\t",quote="",stringsAsFactors=T,fileEncoding="UTF-16", fill=F)
Bem, obrigado pela ajuda, mas pena que não resolvi no R.
=======
#include <stdio.h>
#include <stdlib.h>
int main(int argc, const char * argv[])
{
FILE * inFile;
FILE * outFile;
inFile = fopen("/Users/robertopinho/Downloads/teste.csv", "rb");
outFile = fopen("/Users/robertopinho/Downloads/teste2.csv", "wb");
while(!feof(inFile)){
char c1;
char c2;
c1 = fgetc(inFile);
c2 = fgetc(inFile);
if(c1 == (int)NULL && c2 == (int)NULL){
c1=0x20;
}
fputc(c1,outFile);
fputc(c2,outFile);
}
fclose(outFile);
fclose(inFile);
return 0;
}
2012/11/1 Daniel Marcelino <dmsilva.br em gmail.com>
> Tenta baixar os dados e importar do computador. É quase 1 gb de texto. É
> praticamente impossível não ter nenhum erro de codificação.
> Eu fiz assim e deu certo de novo com o arquivo "20120930_Servidores.csv":
>
> data1 <- read.delim(file.choose(),header=TRUE,sep="\t", fill=TRUE,
> fileEncoding = "UTF-16LE")
>
>
> R version 2.15.1 (2012-06-22) -- "Roasted Marshmallows"
> Copyright (C) 2012 The R Foundation for Statistical Computing
> ISBN 3-900051-07-0
> Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
>
> R is free software and comes with ABSOLUTELY NO WARRANTY.
> You are welcome to redistribute it under certain conditions.
> Type 'license()' or 'licence()' for distribution details.
>
> Natural language support but running in an English locale
>
> R is a collaborative project with many contributors.
> Type 'contributors()' for more information and
> 'citation()' on how to cite R or R packages in publications.
>
> Type 'demo()' for some demos, 'help()' for on-line help, or
> 'help.start()' for an HTML browser interface to help.
> Type 'q()' to quit R.
>
> > data1 <- read.delim(file.choose(),header=TRUE,sep="\t", fill=TRUE,
> fileEncoding = "UTF-16LE")
> > head(data1)
> ID_SERVIDOR_PORTAL NOME CPF
> 1 1493044 AALINE SEVERIANO DA SILVA ***.592.871-**
> 2 1890528 AARAO CARLOS LUZ MACAMBIRA ***.017.623-**
> 3 1762984 AARAO CAVALCANTE DE AMORIM ***.292.777-**
> 4 1920165 AARAO DE ANDRADE LIMA ***.559.144-**
> 5 1611738 AARAO DIAMANTINO OLIVEIRA ***.056.281-**
> 6 1611738 AARAO DIAMANTINO OLIVEIRA ***.056.281-**
> MATRICULA DESCRICAO_CARGO CLASSE_CARGO
> 1 019****
> 2 016**** BIBLIOTECARIO-DOCUMENTALISTA E
> 3 009**** AGENTE DE SERV DE ENGENHARIA S
> 4 003**** PROFESSOR 3 GRAU V
> 5 000****
> 6 000**** ANALISTA DO BANCO CENTRAL E
> REFERENCIA_CARGO PADRAO_CARGO NIVEL_CARGO SIGLA_FUNCAO NIVEL_FUNCAO
> 1 NA NA
> 2 NA NA
> 3 NA NA
> 4 NA NA
> 5 NA NA FBC FDT1
> 6 NA IV NA
> FUNCAO CODIGO_ATIVIDADE
> 1
> 2
> 3
> 4
> 5 FUNCAO COMISSIONADA DO BANCO CENTRAL FDT1
> 6
> ATIVIDADE OPCAO_FUNCAO_TOTAL
> 1
> 2
> 3
> 4
> 5 CHEFE DE SUBUNIDADE
> 6
> UORG_LOTACAO COD_ORG_LOTACAO
> 1 NA
> 2 NA
> 3 NA
> 4 NA
> 5 DEPTO. CONTR. GEST. PLAN. SUPERVISAO 25201
> 6 DEPTO. CONTR. GEST. PLAN. SUPERVISAO 25201
> ORG_LOTACAO COD_ORGSUP_LOTACAO ORGSUP_LOTACAO
> 1 NA
> 2 NA
> 3 NA
> 4 NA
> 5 BANCO CENTRAL DO BRASIL 25201 BANCO CENTRAL DO BRASIL
> 6 BANCO CENTRAL DO BRASIL 25201 BANCO CENTRAL DO BRASIL
> UORG_EXERCICIO COD_ORG_EXERCICIO
> 1
> 2
> 3
> 4
> 5 DEPTO. CONTR. GEST. PLAN. SUPERVISAO 25201
> 6 DEPTO. CONTR. GEST. PLAN. SUPERVISAO 25201
> ORG_EXERCICIO COD_ORGSUP_EXERCICIO
> 1
> 2
> 3
> 4
> 5 BANCO CENTRAL DO BRASIL 25201
> 6 BANCO CENTRAL DO BRASIL 25201
> ORGSUP_EXERCICIO TIPO_VINCULO SITUACAO_VINCULO
> 1 NA
> 2 NA
> 3 NA
> 4 NA
> 5 BANCO CENTRAL DO BRASIL 1 ATIVO PERMANENTE
> 6 BANCO CENTRAL DO BRASIL 2 ATIVO PERMANENTE
> COD_GRUPO_AFASTAMENTO COD_AFASTAMENTO DATA_INICIO_AFASTAMENTO
> 1 NA
> 2 NA
> 3 NA
> 4 NA
> 5 NA Não informada
> 6 NA Não informada
> DATA_TERMINO_AFASTAMENTO REGIME_JURIDICO JORNADA_DE_TRABALHO
> 1
> 2
> 3
> 4
> 5 Não informada REGIME JURIDICO UNICO 40 HORAS SEMANAIS
> 6 Não informada REGIME JURIDICO UNICO 40 HORAS SEMANAIS
> DATA_INGRESSO_CARGOFUNCAO DATA_NOMEACAO_CARGOFUNCAO
> 1 NA
> 2 NA
> 3 NA
> 4 NA
> 5 27/04/2012 NA
> 6 05/01/1998 NA
> DATA_INGRESSO_ORGAO DOCUMENTO_INGRESSO_SERVICOPUBLICO
> 1
> 2
> 3
> 4
> 5 000000000
> 6 000000000
> DATA_DIPLOMA_INGRESSO_SERVICOPUBLICO DIPLOMA_INGRESSO_CARGOFUNCAO
> 1 NA
> 2 NA
> 3 NA
> 4 NA
> 5 Não informada NA
> 6 Não informada NA
> DIPLOMA_INGRESSO_CARGOFUNCAO.1 DIPLOMA_INGRESSO_SERVICOPUBLICO
> 1
> 2
> 3
> 4
> 5
> 6
>
>
> 2012/10/31 Jakson Alves de Aquino <jalvesaq em gmail.com>
>
>> 2012/10/31 Roberto de Pinho <robertodepinho em gmail.com>:
>> > tbm sem sucesso:
>> >
>> > ata1 <- read.delim(url,header=TRUE,sep="\t", fill=TRUE, fileEncoding =
>> > "UTF-16", as.is=T)
>> > ata1 <- read.delim(url,header=TRUE,sep="\t", fill=TRUE, fileEncoding =
>> > "UTF-16")
>> > ata1 <- read.delim(url,header=TRUE,sep="\t", fill=TRUE, fileEncoding =
>> > "UTF-16LE", as.is=T)
>> > ata1 <- read.delim(url,header=TRUE,sep="\t", fill=TRUE, fileEncoding =
>> > "UTF-16LE")
>>
>> Se estiver usando um sistema operacional que tenha o programa sed
>> instalado (qualquer distribuição do Linux), uma tentativa pode ser
>> "limpar" o arquivo, removendo os 0s:
>>
>> sed -e 's/\x00//g' teste.csv > teste2.csv
>> sed -e 's/\xff\xfe//' teste2.csv > teste3.csv
>> _______________________________________________
>> 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.
>>
>
>
>
> --
> "Small steps toward a much better world"
>
> \begin{signature}
> Daniel Marcelino
> Land Phone 1+514 343 6111 #3799
> 3200 Jean Brillant, Office C5071
> Montreal, QC; H3T 1N8
> Canada
> \end{signature}
>
> _______________________________________________
> 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.
>
--
Roberto de Pinho
robertodepinho em gmail.com
http://www.ascoisas.com
http://lattes.cnpq.br/4816166073408660
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20121101/fdb40b56/attachment-0001.html>
Mais detalhes sobre a lista de discussão R-br