Encoding em read_csv2

Estou tentando importar arquivos csv sobre resultados de eleições que baixei do site do TSE, mas estou tendo problemas de encoding na leitura do arquivo.
Origem: Conjunto de dados - Portal de Dados Abertos do TSE
Tipo de arquivo: Microsoft Excel Comma Separated Values File (.csv)

Para isso, estou usando o seguinte código:
votacao_secao_2020 ← read_csv2(
file = “~/ProjetosR/Ceara_politica/data_raw/votacao_secao_2020_CE.csv”,
locale = locale(encoding = “Latin1”)
)

Informei “Latin1” porque é o encoding informado pelo LEIAME.pdf que acompanha o arquivo.

Porém, mesmo assim, a leitura dos strings está dando problema. Por exemplo, na coluna NM_TIPO_ELEICAO, o que deveria ser “ELEIÇÃO ORDINÁRIA” aparece como “ELEI\u00c7\u00c3O ORDIN\u00c1RIA”.

Usei o seguinte código para descobrir qual encoding o R estava atribuindo àquela coluna:
Encoding(votacao_secao_2020$NM_TIPO_ELEICAO)
Porém, o resultado foi “unknown” “unknown” “unknown”…

Tentei resolver na marra:
Encoding(votacao_secao_2020$NM_TIPO_ELEICAO) ← “Latin1”
Mas continuou tudo igual…

Alguma luz sobre como resolver esse problema de encoding?

Interessante que quando dei view(), o RStudio leu direitinho os caracteres especiais… vai entender…

Oi, Pedro

Poderia por gentileza enviar o link direto para o arquivo que tentou ler?
Pelo link que enviou, cai em uma busca com diversos arquivos.

Oi, William @wamorim !
É esse aqui:
https://cdn.tse.jus.br/estatistica/sead/odsele/votacao_secao/votacao_secao_2020_CE.zip

Oi, Pedro. Obrigado por enviar o link!

Para mim (Windows 10), isso aqui funcionou:

tab <- readr::read_csv2(
  "~/votacao_secao_2020_CE.csv",
  locale = readr::locale(
    encoding = "latin1"
  )
)
#> i Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
#> Rows: 1463359 Columns: 23
#> -- Column specification --------------------------------------------------------
#> Delimiter: ";"
#> chr  (10): DT_GERACAO, NM_TIPO_ELEICAO, DS_ELEICAO, DT_ELEICAO, TP_ABRANGENC...
#> dbl  (12): ANO_ELEICAO, CD_TIPO_ELEICAO, NR_TURNO, CD_ELEICAO, SG_UE, CD_MUN...
#> time  (1): HH_GERACAO
#> 
#> i Use `spec()` to retrieve the full column specification for this data.
#> i Specify the column types or set `show_col_types = FALSE` to quiet this message.

dplyr::glimpse(tab)
#> Rows: 1,463,359
#> Columns: 23
#> $ DT_GERACAO       <chr> "21/12/2020", "21/12/2020", "21/12/2020", "21/12/2020~
#> $ HH_GERACAO       <time> 16:55:14, 16:55:14, 16:55:14, 16:55:14, 16:55:14, 16~
#> $ ANO_ELEICAO      <dbl> 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020, 2020,~
#> $ CD_TIPO_ELEICAO  <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,~
#> $ NM_TIPO_ELEICAO  <chr> "ELEIÇÃO ORDINÁRIA", "ELEIÇÃO ORDINÁRIA", "ELEIÇÃO OR~
#> $ NR_TURNO         <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1,~
#> $ CD_ELEICAO       <dbl> 426, 426, 426, 426, 426, 426, 426, 426, 426, 426, 427~
#> $ DS_ELEICAO       <chr> "ELEIÇÕES MUNICIPAIS 2020", "ELEIÇÕES MUNICIPAIS 2020~
#> $ DT_ELEICAO       <chr> "15/11/2020", "15/11/2020", "15/11/2020", "15/11/2020~
#> $ TP_ABRANGENCIA   <chr> "M", "M", "M", "M", "M", "M", "M", "M", "M", "M", "M"~
#> $ SG_UF            <chr> "CE", "CE", "CE", "CE", "CE", "CE", "CE", "CE", "CE",~
#> $ SG_UE            <dbl> 13897, 13897, 13897, 13897, 13897, 13897, 13897, 1389~
#> $ NM_UE            <chr> "FORTALEZA", "FORTALEZA", "FORTALEZA", "FORTALEZA", "~
#> $ CD_MUNICIPIO     <dbl> 13897, 13897, 13897, 13897, 13897, 13897, 13897, 1389~
#> $ NM_MUNICIPIO     <chr> "FORTALEZA", "FORTALEZA", "FORTALEZA", "FORTALEZA", "~
#> $ NR_ZONA          <dbl> 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 9~
#> $ NR_SECAO         <dbl> 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 205~
#> $ CD_CARGO         <dbl> 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1~
#> $ DS_CARGO         <chr> "PREFEITO", "PREFEITO", "PREFEITO", "PREFEITO", "PREF~
#> $ NR_VOTAVEL       <dbl> 12, 13, 17, 43, 50, 65, 77, 90, 95, 96, 12, 96, 95, 9~
#> $ NM_VOTAVEL       <chr> "JOSÉ SARTO NOGUEIRA MOREIRA", "LUIZIANNE DE OLIVEIRA~
#> $ QT_VOTOS         <dbl> 94, 53, 9, 18, 5, 1, 13, 108, 26, 29, 132, 21, 13, 16~
#> $ NR_LOCAL_VOTACAO <dbl> 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,~

Created on 2022-01-07 by the reprex package (v2.0.1)

1 curtida

Engraçado. Esse na verdade é o código que eu usei desde o início. Porém, o fato de ter funcionado contigo me levou a buscar diagnósticos ligados à configuração da minha máquina.

Eu uso Windows 11 com idioma do sistema em Español (México), mas, como a versão é Home Single Language, não consegui mudar pra Português (Brasil). Mesmo assim, mudei o “País ou região” e “Formato regional” para Brasil e Português (Brasil)", e deu certo (infelizmente não lembro qual parâmetro estava antes).

Enfim, problema resolvido, mas parece que o RStudio está sujeito a configurações locais no print do console, mesmo quando indicamos o locale (lembrando que o view deu certo desde o início).
Valeu, William!!

1 curtida