Ejemplo de web scraping con R. La formación de los diputados del Congreso

No sabía si realizar esta entrada sobre web scraping con R o con python. He optado por la primera opción porque en un principio era una entrada para ilustrar un ejemplo de web scraping y al final se me están ocurriendo muchas ideas sobre el análisis de la web de Congreso de los diputados y he preferido hacerla con R porque tengo una mayor soltura para hacer distintos análisis. Quería empezar por estudiar la formación que tienen nuestros 350 diputados, para ello se me ocurrió descargarme las líneas que tienen en su ficha de diputado y crear un data frame con los datos personales referentes a su formación. Si entráis en la ficha de cualquier diputado (http://www.congreso.es/portal/page/portal/Congreso/Congreso/Diputados/BusqForm?_piref73_1333155_73_1333154_1333154.next_page=/wc/fichaDiputado?idDiputado=171&idLegislatura=12) veréis que les han dejado un pequeño texto donde describen su hoja de vida. La verdad es que cada uno a escrito lo que le ha parecido pero algún patrón se puede encontrar. Para ilustrar el ejemplo he preferido usar la librería rvest porque me ha parecido una sintaxis más sencilla. Yo no soy un buen programador, incluso soy un poco desastre, hasta guarrete programando y con rvest creo que el código es bastante claro. ...

25 de enero de 2017 · rvaquerizo

Función de R para geolocalizar IP

El proyecto freegeoip tiene su propia función en R para poder crea un data frame con la geolocalización de las ips. La función la podéis encontrar en este enlace y tiene un funcionamiento muy sencillo: library(rjson) localizacion1<-freegeoip('23.89.204.150') localizacion2<-freegeoip(c('106.78.232.100','174.6.153.88')) Resulta que no recordaba su existencia y ya tenía algo parecido en XML… pero siempre hay alguien que lo ha hecho antes con R. Saludo.

28 de diciembre de 2016 · rvaquerizo

Aprende rstats de forma presencial por muy poco

Ha llegado al Grupo de Usuarios de R de Madrid el siguiente curso de R: Os anuncio el siguiente curso de análisis de estadístico de datos en R. I Jornadas de Análisis Estadísticos de Datos en R: Un enfoque práctico. A celebrarse: del 14-17 de Noviembre de 2016 en Fuenlabrada (Madrid) de 16:00 a 19:00. Plazo de preinscripción: 20 de octubre al 4 de noviembre. Precio matrícula 35 € Existe la posibilidad de beca para conseguir matrículas de 10 € ...

31 de octubre de 2016 · rvaquerizo

El parámetro gamma, el coste, la complejidad de un SVM

Cuando clasificamos datos con SVM es necesario fijar un margen de separación entre observaciones, si no fijamos este margen nuestro modelo sería tan bueno tan bueno que sólo serviría para esos datos, estaría sobrestimando y eso es malo. El coste C y el gamma son los dos parámetros con los que contamos en los SVM. El parámetro C es el peso que le damos a cada observación a la hora de clasificar un mayor coste implicaría un mayor peso de una observación y el SVM sería más estricto (este link aclara mejor las cosas). Si tuvieramos un modelo que clasificara observaciones en el plano como una letra O podemos ver como se modifica la estimación en esta secuencia en la que se ha modificado el parámetro C: ...

13 de octubre de 2016 · rvaquerizo

Mapas municipales de Argentina con R

En respuesta a un lector del blog he elaborado de forma rápida una nueva entrada que nos permite realizar mapas por municipalidades para Argentina, ya hay entradas similares pero está bien que este mapa tenga su propia entrada para facilitar las búsquedas. El ejemplo es rápido y es probable que el código tenga algún fallo o error, si es así lo comentáis y lo solvento. Como es habitual nos dirigimos a la web del proyecto Global Administrative Areas (http://www.gadm.org/country) y nos descargamos el mapa de Argentina por municipios que es el nivel 2, una vez descargado pocas líneas de R: ...

5 de septiembre de 2016 · rvaquerizo

El brexit con rstats o como mover spatial data con R

Animación con R para ilustrar el uso de la función de maptools elide de código «insultantemente» sencillo: library(maptools) library(animation) #Mapa descargado de: #http://www.arcgis.com/home/item.html?id=6d611f8d87d54227b494d4c3becef6a0 ub_shp = "/Users/raulvaquerizo/Desktop/R/mapas/world/MyEurope.shp" europa = readShapeSpatial(ub_shp) plot(europa) europa_sin_uk = europa[europaFIPS_CNTRY != "UK",] uk = europa[europaFIPS_CNTRY == "UK",] saveGIF( for (i in seq(0,5,by=0.1)){ plot(europa_sin_uk) uk = elide(uk,shift=c(-i,1)) plot(uk,add=TRUE)}, interval=.3, movie.name="/Users/raulvaquerizo/Desktop/R/animaciones/brexit/bye_england.gif") Nos descargamos el mapa del link que os pongo y poco más que leer el shape con readShapeSpatial y crear dos objetos uno con Europa sin la isla y otro con la isla, elide nos permite desplazar un objeto de spatial data dentro del gráfico y lo metemos en un bucle y bye England. Ahora el que me mueva las Canarias en un shape file con más de 2 líneas de código me paga una cervecita. Saludos.

10 de agosto de 2016 · rvaquerizo

El paquete de R weatherData para la obtención de datos meteorológicos en España

Tenía pendiente un proyecto con modelos de Lee Carter y el paquete weatherData de R (¡toma!) pero como no lo voy a llevar a cabo nunca os traigo a estas líneas un paquete más que interesante de R que nos permite obtener datos de las estaciones meteorológicas de los aeropuertos del mundo (https://www.wunderground.com/history/airport/) y encima te lo pone como un objeto de R, qué más podemos pedir. En github tenéis una completa batería de ejemplos de uso. En el caso de que necesitemos descargar información meteorológica de España tenemos que irnos a http://weather.rap.ucar.edu/surface/stations.txt donde están listados todos los aeropuertos que recoge este sistema de información, buscamos SPAIN y nos interesa el ICAO que es el International Civil Aviation Organization , el código del aeropuerto vamos. Con estas premisas si quiero recoger las temperaturas de 2015 del aeropuerto de Albacete: ...

3 de agosto de 2016 · rvaquerizo

Truco SAS. Como leer PC Axis con SAS

Estoy leyendo información del INE que tiene que terminar cargándose en SAS y estos datos están en formato PC Axis. Existen macros en SAS para generar datasets a partir de PC Axis pero la verdad es que no he llegado a entender muy bien como funcionan y tras varios errores la mejor opción que he encontrado es emplear R y el paquete pxR que han creado algunos miembros de la Comunidad de R-Hispano. Como realizo esta tarea es más que sencillo: ...

22 de junio de 2016 · rvaquerizo

Cartografía digitalizada de España por sección censal

Por si no lo sabéis tenemos disponible en la web del INE un mapa de España por sección censal que podéis descargaros y realizar mapas con R de una forma que es más que conocida para los lectores del blog: ```r #mapas con secciones censales library(maptools) ub_shp = "/Users/raulvaquerizo/Desktop/R/mapas/cartografia_censo2011_nacional/SECC_CPV_E_20111101_01_R_INE.shp" seccion_censal = readShapeSpatial(ub_shp) barcelona = seccion_censal[seccion_censal$NMUN=="Barcelona",] plot(barcelona) A ver si me animo y preparo una BBDD para que podáis acceder desde QGIS a una serie de mapas como este, además de los mapas por código postal. Aunque necesitaría un poco de ayuda técnica (ahí lo dejo). Saludos.

15 de junio de 2016 · rvaquerizo

Adyacencia de polígonos con el paquete spdep de R

Cuando trabajamos con zonificación o geolocalización la adyacencia entre los elementos del estudio es relevante. En este caso quería trabajar con la adyacencia entre los polígonos que componen un archivo de datos espaciales shapefile y para entender mejor como podemos obtener la adyacencia entre polígonos creo que lo mejor es hacer un ejemplo con un mapa, en este caso un mapa de municipios de Barcelona. El primer paso es disponer del objeto con los datos espaciales, de esto ya he escrito mucho en el blog y por eso no me detengo mucho: ...

29 de mayo de 2016 · rvaquerizo