montera34 / escovid19data

Recopilación de datos de COVID19 por provincias en España
Other
81 stars 23 forks source link

Problemas con codificación #35

Open pirio72 opened 3 years ago

pirio72 commented 3 years ago

En Windows 10, al pasar el script (process_spain_provinces_data.R) que genera los ficheros de datos en Windows, se producen problemas de codificación con aquellos ficheros que tienen caracteres con acentos. Al menos, ocurren con:

En el caso de vacunaciones.csv, el script indica que no reconoce ese campo y no procesa el fichero CSV.

Aparecen otros casos de error en otros ficheros, que probablemente también se deban a problemas de codificación.

Sospecha: se trata de un problema de codificación, que no sucede en Linux (cuando actualiza Pablo) pero sí en Windows (cuando actualiza David).

pirio72 commented 3 years ago

Revisando las codificaciones (con git, usando el comando file * --mime-encoding) en la carpeta /covid19/data/original/spain, aparece:

Datos_Casos_COVID19.csv:                         iso-8859-1
Fallecidos_COVID19.xlsx:                         binary
andalucia:                                       binary
aragon:                                          binary
asturias:                                        binary
baleares:                                        binary
canarias:                                        binary
cantabria:                                       binary
castilla-la-mancha:                              binary
catalunya:                                       binary
ccaa-poblacion.csv:                              utf-8
ceuta:                                           binary
covid19_spain_provincias.csv:                    utf-8
cyl:                                             binary
datadista_ccaa_covid19_fallecidos.csv:           utf-8
datos_sanidad_matriz.csv:                        utf-8
euskadi:                                         binary
extremadura:                                     binary
galicia:                                         binary
geovoluntarios-datacovid.csv:                    utf-8
iscii_casos_renave.csv:                          us-ascii
iscii_casos_renave_inicial.csv:                  us-ascii
iscii_data.csv:                                  iso-8859-1
isciii:                                          binary
isciii_casos_diag_ccaadecl.csv:                  us-ascii
isciii_casos_diagnostico_ccaa.csv:               us-ascii
isciii_casos_diagnostico_provincia.csv:          us-ascii
isciii_casos_hosp_uci_def_sexo_edad_provres.csv: us-ascii
madrid:                                          binary
melilla:                                         binary
murcia:                                          binary
navarra:                                         binary
provincias-poblacion.csv:                        utf-8
rioja:                                           binary
sanidad:                                         binary
shapes:                                          binary
uniprovinciales:                                 binary
vacunaciones.csv:                                unknown-8bit
valencia:                                        binary

vacunaciones.csv aparece con codificación unknown-8bit.

Hay algunos ficheros que tienen codificacionesiso-8859-1 y us-ascii (los "binary" son subdirectorios). ¿Podrían ser también causante de errores?

pirio72 commented 3 years ago

El problema de vacunaciones.csv parece solucionarse si:

  1. Se sustituye la línea 3355:

vacunas <- read.delim("data/original/spain/vacunaciones.csv",sep = ",") %>% rename(

por

vacunas <- read.delim("data/original/spain/vacunaciones.csv",sep = ",",encoding = "UTF-8") %>% rename(

  1. Y además, se comentan las líneas que se indican (en la versión anterior, no estaban comentadas)

    ccaa = ifelse( ccaa =="Andalucía", "Andalucía", ccaa),
    # ccaa = ifelse( substr(ccaa,1,2) == "An", "Andalucía", ccaa),
    ccaa = ifelse( ccaa =="Aragón", "Aragón", ccaa),
    # ccaa = ifelse( substr(ccaa,1,2) == "Ar", "Aragón", ccaa),
    ...
    # ccaa = ifelse( ccaa =="Catalu�a", "Cataluña", ccaa),

¿Tendrán estos cambios alguna incidencia?

pirio72 commented 3 years ago

Algunos ficheros que podrían dar problemas (a priori) por su codificación

asturias -- us-ascii
canarias (varios) - us-ascii
euskadi/poblacion-jovenes.csv --> us-ascii
galicia/ [varios] --> us-ascii
iscii_casos_renave.csv:                          us-ascii
iscii_casos_renave_inicial.csv:                  us-ascii
isciii:                                          binary (dentro, us-ascii)
isciii_casos_diag_ccaadecl.csv:                  us-ascii
isciii_casos_diagnostico_ccaa.csv:               us-ascii
isciii_casos_diagnostico_provincia.csv:          us-ascii
isciii_casos_hosp_uci_def_sexo_edad_provres.csv: us-ascii
madrid-historico.csv:                  us-ascii
madrid-pcr:                            binary (--> us-ascii)
madrid-pcr.csv:                        us-ascii
madrid-series.csv:                     us-ascii
rioja/evolución.csv                    us-ascii
pirio72 commented 3 years ago

Solucionados casi todos los problemas de codificación

No parece funcionar (pero se cambia por si acaso)

Se cambió, en la configuración de R, en Tools --> Global Options --> Code --> Saving --> Default Text Encoding, a la codificación UTF-8, pero no parecía funcionar.

Sí parece funcionar:

cambiando todos los casos de:

... <- read.delim(...,sep = ",") %>% mutate (...

por

... <- read.delim(...,sep = ",",encoding = "UTF-8") %>% mutate (...

Y buena parte de los errores han desaparecido (aunque quedan algunos).

otro-mas1 commented 3 years ago

Revisando las codificaciones (con git, usando el comando file * --mime-encoding) en la carpeta /covid19/data/original/spain, aparece:

Datos_Casos_COVID19.csv:                         iso-8859-1
Fallecidos_COVID19.xlsx:                         binary
andalucia:                                       binary
aragon:                                          binary
asturias:                                        binary
baleares:                                        binary
canarias:                                        binary
cantabria:                                       binary
castilla-la-mancha:                              binary
catalunya:                                       binary
ccaa-poblacion.csv:                              utf-8
ceuta:                                           binary
covid19_spain_provincias.csv:                    utf-8
cyl:                                             binary
datadista_ccaa_covid19_fallecidos.csv:           utf-8
datos_sanidad_matriz.csv:                        utf-8
euskadi:                                         binary
extremadura:                                     binary
galicia:                                         binary
geovoluntarios-datacovid.csv:                    utf-8
iscii_casos_renave.csv:                          us-ascii
iscii_casos_renave_inicial.csv:                  us-ascii
iscii_data.csv:                                  iso-8859-1
isciii:                                          binary
isciii_casos_diag_ccaadecl.csv:                  us-ascii
isciii_casos_diagnostico_ccaa.csv:               us-ascii
isciii_casos_diagnostico_provincia.csv:          us-ascii
isciii_casos_hosp_uci_def_sexo_edad_provres.csv: us-ascii
madrid:                                          binary
melilla:                                         binary
murcia:                                          binary
navarra:                                         binary
provincias-poblacion.csv:                        utf-8
rioja:                                           binary
sanidad:                                         binary
shapes:                                          binary
uniprovinciales:                                 binary
vacunaciones.csv:                                unknown-8bit
valencia:                                        binary

vacunaciones.csv aparece con codificación unknown-8bit.

Hay algunos ficheros que tienen codificacionesiso-8859-1 y us-ascii (los "binary" son subdirectorios). ¿Podrían ser también causante de errores?

Por si alguien lo duda, yo de R no tengo ni idea. Por si ayuda, cuento lo que he podido ver.

Los ficheros us-ascii se pueden leer como utf-8 pues la correspondencia es directa desde us-ascii a utf-8. Obviamente NO en sentido contrario.

UTF-8, Incluye la especificación US-ASCII de 7 bits, por lo que cualquier mensaje ASCII se representa sin cambios

En el resto de los casos, no estoy igual de seguro que si lees otros enconding como utf-8 los entienda correcto.


En el caso de data/original/spain/vacunaciones.csv

tiene datos de estas CCAA Andaluc�a Andalucía Arag�n Aragón Asturias Baleares C. Valenciana Canarias Cantabria Castilla La Mancha Castilla y Leon Catalu�a Cataluña ccaa Ceuta Extremadura Fuerzas Armadas Galicia La Rioja Madrid Melilla Murcia Navarra País Vasco Pa�s Vasco Totales

En resumen, vacunaciones.csv tenía todos los registros 'correctos' con sus acentos y todo bien. Hasta los datos del 25 de marzo. Los del 26 de marzo entraron 'distintos'