[R-es] Problemas con tildes y otros caracteres en R y RStudio

Carlos J. Gil Bellosta cgb en datanalytics.com
Mar Jun 21 12:07:10 CEST 2016


Hola, ¿qué tal?

Son los dichosos "encodings". De todos modos, me parece raro que rvest
lo haga mal: promete que va a interpretar lo leído de acuerdo con el
"encoding" declarado en la página, por lo que no debería haber
problemas en ninguna plataforma. De todos modos, tienes una opción en
rvest para indicar el juego de caracteres. Igual indicando "latin1"
funciona.

También he visto problemas llamando a ggmap::geocode desde Windows
cuando la cadena contiene caracteres no ascii. Hay información aquí:

https://github.com/dkahle/ggmap/issues/89

No sé si tratar de transformar la cadena de búsqueda a UTF8 con iconv
ayudará o no a resolver el problema.

Un saludo,

Carlos J. Gil Bellosta
http://www.datanalytics.com

El día 21 de junio de 2016, 11:52, giltrapo <giltrapo en gmail.com> escribió:
> Hola.
>
> Tengo algún tipo de problema con las tildes, a la hora de trabajar en R o
> en RStudio, que no sé resolver.
>
> Intentando reproducir en dos PCs distintos, ambos con Windows 7, uno de los
> últimos ejercicios que ha publicado Carlos Gil Bellosta en su blog (
> https://www.datanalytics.com/2016/06/20/6602-767-km-alrededor-de-espana-para-visitar-todas-sus-capitales-de-provincia/),
> me ocurre que al ejecutar el código
>
> library(rvest)
> library(caRtociudad)
> library(reshape2)
> library(ggmap)
> library(plyr)
> library(TSP)
>
> capitales <- read_html("
> https://es.wikipedia.org/wiki/Anexo:Capitales_de_provincia_de_Espa%C3%B1a_por_poblaci%C3%B3n
> ")
> capitales <- html_nodes(capitales, "table")
> capitales <- html_table(capitales[[1]])$Ciudad
>
> obtengo esto:
>
>> capitales
>
> [1] "Madrid"                     "Barcelona"
>  [3] "Valencia"                   "Sevilla"
>  [5] "Zaragoza"                   "Málaga"
>  [7] "Murcia"                     "Palma de Mallorca"
>  [9] "Las Palmas de Gran Canaria" "Bilbao"
> [11] "Alicante"                   "Córdoba"
> [13] "Valladolid"                 "La Coruña"
> [15] "Vitoria"                    "Granada"
> [17] "Oviedo"                     "Santa Cruz de Tenerife"
> [19] "Pamplona"                   "Almería"
> [21] "San Sebastián"             "Burgos"
> [23] "Santander"                  "Castellón de la Plana"
> [25] "Albacete"                   "Logroño"
> [27] "Badajoz"                    "Salamanca"
> [29] "Huelva"                     "Lérida"
> [31] "Tarragona"                  "León"
> [33] "Cádiz"                     "Jaén"
> [35] "Orense"                     "Lugo"
> [37] "Gerona"                     "Cáceres"
> [39] "Santiago de Compostela"     "Ceuta"
> [41] "Melilla"                    "Guadalajara"
> [43] "Toledo"                     "Pontevedra"
> [45] "Palencia"                   "Ciudad Real"
> [47] "Zamora"                     "Mérida"
> [49] "Ã vila"                     "Cuenca"
> [51] "Segovia"                    "Huesca"
> [53] "Soria"                      "Teruel"
>
> Es decir, no aparecen ni tildes ni eñes.
>
> Si, en cambio, ejecuto
>
> library(XML)
> library(RCurl)
>
> capitales <- data.frame(readHTMLTable(getURL("
> https://es.wikipedia.org/wiki/Anexo:Capitales_de_provincia_de_Espa%C3%B1a_por_poblaci%C3%B3n
> ")))
>
> obtengo un data frame en el que las ciudades ya aparecen con sus tildes y
> sus eñes...aunque en los nombres de las variables siguen apareciendo esos
> caracteres extraños en vez de tildes.
>
> Con el resto del código de Carlos me sigue ocurriendo lo mismo, ya que si
> intento
>
> geocode("Logroño")
>
> me devuelve
>
> Information from URL :
> http://maps.googleapis.com/maps/api/geocode/json?address=Logro%F1o&sensor=false
>   lon lat
> 1  NA  NA
> Warning messages:
> 1: In readLines(connect, warn = FALSE) :
>   cannot open URL '
> http://maps.googleapis.com/maps/api/geocode/json?address=Logro%F1o&sensor=false':
> HTTP status was '400 Bad Request'
> 2: In geocode("Logroño") :   geocoding failed for "Logroño".
>   if accompanied by 500 Internal Server Error with using dsk, try google.
>
> en cambio, si pruebo con
>
> geocode("Logrono")
>
> la respuesta es correcta
>
> Information from URL :
> http://maps.googleapis.com/maps/api/geocode/json?address=Logrono&sensor=false
>         lon      lat
> 1 -2.444985 42.46272
>
> Lo mismo ocurre si intento capturar las coordenadas de Málaga, Castellón,
> etc. Si lleva tildes o eñes, no reconoce el texto.
>
> Entiendo que todo esto se debe a algún problema de codificación, pero no sé
> cómo arreglarlo. Tampoco sé por qué con read_html capturo los datos mal,
> pero con readHTMLTable y RCurl los capturo bien...a medias.
>
> ¿Alguien tiene alguna idea sobre qué puede estar ocurriendo?
>
> Jose Ignacio
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



Más información sobre la lista de distribución R-help-es