giltrapo
2016-Jun-21 09:52 UTC
[R-es] Problemas con tildes y otros caracteres en R y RStudio
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]]
Carlos J. Gil Bellosta
2016-Jun-21 10:07 UTC
[R-es] Problemas con tildes y otros caracteres en R y RStudio
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
giltrapo
2016-Jun-21 11:15 UTC
[R-es] Problemas con tildes y otros caracteres en R y RStudio
Hola, Carlos. A mí también me resulta raro, porque no me pasa siempre. Es un poco aleatorio. Imagino que habrá alguna razón, y que el código de la página estará relacionado, claro, pero no consigo averiguar a qué se debe. Además las pruebas que hago me dejan todavía más perplejo. Esto Encoding(capitales) me dice que el encoding es "unknow", pero luego esto validUTF8(capitales) me dice que sí, que todo es "TRUE". También probé guess_encoding(" https://es.wikipedia.org/wiki/Anexo:Capitales_de_provincia_de_Espa%C3%B1a_por_poblaci%C3%B3n ") y el resultado es encoding language confidence 1 ISO-8859-1 es 0.70 2 ISO-8859-2 ro 0.43 3 ISO-8859-9 tr 0.16 4 UTF-8 0.15 5 UTF-16BE 0.10 6 UTF-16LE 0.10 7 Shift_JIS ja 0.10 8 GB18030 zh 0.10 9 EUC-JP ja 0.10 10 EUC-KR ko 0.10 11 Big5 zh 0.10 He ido probando cada uno de esos encodings, al llamar a la función read_html, pero nada, sigue sin codificarlo bien. También probé a utilizar iconv, pero sin resultados positivos. En fin, seguiré investigando. Muchas gracias y saludos! Jose Ignacio 2016-06-21 12:07 GMT+02:00 Carlos J. Gil Bellosta <cgb en datanalytics.com>:> 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 >[[alternative HTML version deleted]]