Nuevo curso: "Big & open data: análisis y programación con R"

Este verano, la Escuela Complutense de Verano ofrece el curso Big & open data: análisis y programación con R. Lo anuncio por aquí por tres motivos: Por su interés intrínseco. Por si alguno de los lectores de estas páginas estuviese interesado. Porque yo participo/participaría en el programa contando cosas de lo más jugosas.

2 de junio de 2014 · Carlos J. Gil Bellosta

Inserción eficiente (?) de datos vía RJDBC

Las bases de datos son instrumentos magníficos con dos defectos fundamentales: es difícil meter datos en ellas y es difícil sacar datos de ellas. Pero guardarlos… los guardan estupendamente. Estos días me ha tocado subir a una base de datos tablas bastante grandes y las herramientas proporcionadas por RJDBC para ello, esencialmente dbWriteTable han fallado. Internet no se pone de acuerdo sobre si es un bug de RJDBC o si la culpa la tiene el driver de la base de datos que estoy obligado a utilizar. Como fuere, me ha tocado descender un escalón de abstracción y jugar directamente con la API del driver para ejecutar prepared statements. ...

27 de mayo de 2014 · Carlos J. Gil Bellosta

R en paralelo

Trabajo sobre una máquina de 8 núcleos y 24 GB de RAM. Y que conste que se me ha llegado a quedar chica. Algunos programas que ejecuto tienen (o contienen pedazos de) la forma calcula A calcula B calcula C combina A, B y C Obviamente, se me ocurre ejecutarlos así: calcula A, B y C en paralelo cuando acabe el paso anterior, combina A, B y C Y aún me sobrarían 5 núcleos y bastante RAM. La pregunta es: ¿cómo? ...

15 de mayo de 2014 · Carlos J. Gil Bellosta

Y sin embargo, te quiero

Copio aquí unas líneas: R is a dynamic language for statistical computing that combines lazy functional features and object-oriented programming. This rather unlikely linguistic cocktail would probably never have been prepared by computer scientists, yet the language has become surprisingly popular. Pertenecen al resumen de un artículo que enlazo aquí por si a alguien le intrigan el nudo y el desenlaza de ese planteamiento.

14 de mayo de 2014 · Carlos J. Gil Bellosta

Nueva versión de MicroDatosEs: héroes, villanos y mejoras

Ayer odié mucho a José Luis Cañadas —que sigue no obstante siendo amigo: véase más abajo— por esto: Nueva versión en CRAN de MicroDatosEs de @gilbellosta. Permite leer con #rstats entre otros, los microdatos los de la EPA del INE. – Jose Luis Cañadas (@joscani) May 13, 2014 Hubiera preferido reservarme la primicia para todos sus usuarios y simpatizantes de la nueva versión del paquete MicroDatosEs recién subida a CRAN pero… en fin. De todos modos José Luis no es el villano de la historia. El villano es el INE, que parió en la mañana del 29 de abril los nuevos resultados de la EPA con un cambio retroactivo de formato en los ficheros de microdatos que rompió mis funciones justo cuando más falta hacían. ¡Contento me tiene el INE! ¡Apañaos dejó a los usuarios mi paquete! ¿Sabéis cuántos correos desesperados recibí esa mañana? ...

14 de mayo de 2014 · Carlos J. Gil Bellosta

Grid, Scala y arbolitos fractales

Inspirado por los arbolitos que he visto esta mañana en mi semivuelta al lago de Zúrich, las cosas que estoy leyendo últimamente sobre el paquete grid de R (p.e., grid graphics, de Murrell) mi curso de scala y este enlace me he decidido a reescribirlo como Dios manda (y no como de primeras se le ocurriría a un neoingeniero al que solo le han enseñado MatLab y que, por lo tanto, tiene vetado el acceso a cualquier tipo de empresa tecnológica puntera). Me ha quedado así: ...

12 de mayo de 2014 · Carlos J. Gil Bellosta

Las VI Jornadas de Usuarios de R, en Santiago

Escribo para anunciar públicamente que están en marcha las VI Jornadas de Usuarios de R. Se celebrarán este año en Santiago, los días 23 y 24 de octubre de 2014. Esta nueva edición debe mucho a la colaboración de Miguel Ángel Rodríguez Muiños, al Centro de Novas Texnologías de Galicia y otras asociaciones gallegas vinculadas al software libre. Todavía no está disponible el programa (que, en cierto modo, es responsabilidad de vosotros: estáis invitados a enviar propuestas de ponencias y talleres). ...

5 de mayo de 2014 · Carlos J. Gil Bellosta

Embalses en España: otro ejercicio inconcluso de "web scraping"

Vi el otro día que alguien había conseguido datos de la entrada en funcionamiento de las presas de EE.UU. y me picó la curiosidad: ¿se podrán conseguir también para España? La respuesta es afirmativa. El código para bajarse (y adecentar un poco) la base de datos es: library(XML) ## bajada de datos tmp <- lapply(1:47, function(x) readLines(paste("http://www.seprem.es/presases.php?p=", x, sep = ""))) tmp2 <- lapply(tmp, readHTMLTable) ## limpieza de datos res <- lapply(tmp2, function(x) x[[1]]) res <- do.call(rbind, res) res <- res[,-c(1,7)] res <- res[!is.na(res$V2),] res <- res[-(1:5),] res <- data.frame(lapply(res, as.character), stringsAsFactors=F) names(res) <- make.names(as.character(res[1,])) ## filtros de filas res <- res[res$Nombre != "Nombre",] res <- res[res$Nombre != "",] res <- res[!grepl("Presas", res$Nombre), ] res <- res[!grepl("DIQUE DEL", res$Nombre), ] colnames(res) <- c("nombre", "vertiente", "altura", "hm3", "finalizada") res <- res[!is.na(res$vertiente),] ## texto a numérico res$altura <- as.numeric(gsub(",", ".", res$altura)) res$hm3 <- as.numeric(gsub(",", ".", res$hm3)) res$finalizada <- as.numeric(res$finalizada) ## más filtros (se aplican a obras que no son embalses) res <- res[!is.na(res$hm3), ] ## los embalses en construcción no tienen fecha de ## finalización res$finalizada[is.na(res$finalizada)] <- 2015 En cuanto a qué hacer con ellos, me limitaré a mostrar la salida de ...

30 de abril de 2014 · Carlos J. Gil Bellosta

Una de gráficos casi artísticos con R

Hoy traigo una selección a cuatro páginas en que podréis encontrar gráficos casi artísticos creados con R. En la primera de ellas se construye el fractal de Collatz. En las dos siguientes, los autores construyen animaciones. Una de ellas para ilustrar el mecanismo de la regresión local y el segundo para crear figuras en 3D. Y el último, trata de mapas. En particular, de cómo sobreimponer sobre ellos datos de rutas.

25 de abril de 2014 · Carlos J. Gil Bellosta

Aventuras de "web scraping": cómo bajarse todo el BOE

Rescato aquí para futura o ajena referencia un pedazo de código que utilicé un día para un proyecto que se abortó y que tenía que ver con el análisis del texto del BOE. Reza así: setwd("~/boe/boes") library(RCurl) h = getCurlHandle() for( i in 1:3231){ mi.url <- paste("http://www.boe.es/diario_boe/xml.php?id=BOE-A-2013-", i, sep = "") nom.fich <- paste("2013-A-", formatC(i, width = 6, format = "d", flag = "0"), ".xml", sep = "") res <- getURI(mi.url, curl = h) cat(res, file = nom.fich) } for( i in 1:3212){ mi.url <- paste("http://www.boe.es/diario_boe/xml.php?id=BOE-B-2013-", i, sep = "") nom.fich <- paste("2013-B-", formatC(i, width = 6, format = "d", flag = "0"), ".xml", sep = "") res <- getURI(mi.url, curl = h) cat(res, file = nom.fich) } No me preguntéis por qué el contador solo llega hasta tres mil doscientos y pico. O por qué no itero hasta que getURI devuelva un error.

24 de abril de 2014 · Carlos J. Gil Bellosta