Plyr

El número efectivo de partidos

El número efectivo de partidos es el nombre de una página de la Wikipedia, que contiene la fórmula $$ N = \frac{1}{\sum_i p_i^2}$$ y excipiente alrededor. Aplicada a España (usando datos del CIS como proxy), Como casi siempre, el código: library(rvest) library(rvest) library(reshape2) library(plyr) library(zoo) url <- "http://www.cis.es/cis/export/sites/default/-Archivos/Indicadores/documentos_html/sB606050010.html" raw <- read_html(url) tmp <- html_nodes(raw, "table") tmp <- html_table(tmp[[2]], fill = TRUE) colnames(tmp)[1] <- "partido" tmp <- tmp[!is.na(tmp$partido),] tmp <- tmp[1:30,] tmp <- melt(tmp, id.

Dos nuevos tutoriales sobre data.table y dplyr

R
Los productos de Apple, aun admitiendo su calidad, resuelven problemas que yo hace años que no tenía. Tanto data.table como dplyr vinieron a resolver problemas a los que muchos nos enfrentábamos con sudor y lágrimas. Ha aparecido recientemente una serie de tutoriales sobre ambos paquetes que recomiendo: El de data.table El de dplyr (parte I, parte II) Y mis comentarios: Para el 99% de mis problemas de manipulación de datos, me sobra con, además de R base, reshape2 y plyr.

Descarga de datos del Ibex 35 (¿y otros?) minuto a minuto en tiempo (casi) real

El código es library(httr) library(plyr) base.url <- "http://www.infobolsa.es/1/wtdb/ChartIntraday" res <- POST(base.url, body = list(mv = "M SAN", date = "20160518", compressionMult = 1, isSession = 1)) dat <- content(res, as = "parsed", type = "application/json") dat <- dat$answer$LST$TV$T09 dat <- ldply(dat, unlist) Los mutatis mutandis, si alguien tiene la gentileza, en los comentarios.

plyr, dplyr, data.table: ¿qué opinas?

R
Fui un pájaro mañanero con [plyr](http://cran.r-project.org/web/packages/plyr/index.html). Probé una vez [data.table](http://cran.r-project.org/web/packages/data.table/index.html) y no me convenció. Volví a él cuando realmente lo necesitaba y ahora es la prolongación de mis dedos. Aún no me he puesto con [dplyr](http://cran.r-project.org/web/packages/dplyr/index.html) aunque he visto el suficiente código escrito con él que no creo que me cueste mucho comenzar a usarlo. Pero tengo la sensación de que tenemos un cisma como el de vi contra emacs en ciernes.

Totales agregados por bloques en tablas

R
En ocasiones uno quiere añadir un total calculado en ciertos bloques a una tabla. Por ejemplo, en la tabla set.seed(1234) ventas.orig <- data.frame( cliente = rep(1:10, each = 5), producto = rep(letters[1:5], times = 10), importe = rlnorm(50)) tenemos clientes, productos e importes. Y nos preguntamos por el porcentaje en términos de importe que cada producto supone para cada cliente. Una manera natural pero torpe de realizar este cálculo consiste en usar un objeto intermedio y merge:

Dependencias funcionales en R con foodweb

El otro día tropecé con un problema de rendimiento con R y al utilizar Rprof() encontré muchas llamadas a funciones que yo no hacía directamente. La principal sospechosa era la función daply (del paquete plyr) que parecía depender de bastantes otras. Uno puede navegar el código de las funciones para identificar esas dependencias, pero, mirad qué maravilla: library(mvbutils) library(plyr) foodweb(find.funs("package:plyr"), prune = "laply") genera Ahí se ve la dependencia de daply con respecto a laply.