Paquetes

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:

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.
  • Para datos más grandes, me decanto por data.table. En gran medida, porque es previo a dplyr.
  • No obstante, tengo la sensación de que dplyr acabará llevándose el gato al agua: tengo suficientes años como para haber presenciado sin que me las cuenten batallas anteriores: Beta vs VHS, Wordperfect vs Word, etc.

R I/O (o rio)

R

rio es otro de esos desasosegantes paquetes de R. rio contiene esencialmente tres funciones,

  • import, que lo lee todo
  • export, que lo escribe todo y
  • convert, que transforma un fichero de un formato a otro.

Según su documentación, uno puede hacer cosas como

export(mtcars, "mtcars.csv")
export(mtcars, "mtcars.rds")
export(mtcars, "mtcars.sav")

para guardar mtcars en cualquiera de los formatos indicados por la extensión y luego

x <- import("mtcars.csv")
y <- import("mtcars.rds")
z <- import("mtcars.sav")

para importarlos sin complicaciones de separadores, encabezamientos, etc. Además, ya puestos,

Detección de "outliers" locales

Aunque outlier local parezca oxímoron, es un concepto que tiene sentido.

Un outlier es un punto dentro de un conjunto de datos tan alejado del resto que diríase generado por un mecanismo distinto que el resto. Por ejemplo, puedes tener las alturas de la gente y alguna observación que parece producto de otra cosa como, por ejemplo, errores mecanográficos en la transcripción. Un outlier está lejos del resto. Pero, ¿cuánto?

Con ciertas distribuciones tiene sentido pensar que los outliers son puntos a una distancia superior a nosecuántas desviaciones típicas de la media. Más en general, fuera de un determinado círculo. Una medida similar: serían outliers aquellos puntos que a una determinada distancia solo tienen un determinado porcentaje (pequeño) del resto. Todas estas son medidas globales.

Ahora caRtociudad encuentra información administrativa relativa a un punto

R

Y lo hace así:

library(caRtociudad)
get_cartociudad_location_info(40.473219,-3.7227241, year = 2015)
# $seccion
# [1] "2807908148"
#
# $distrito
# [1] "2807908"
#
# $provincia
# [1] "Madrid"
#
# $municipio
# [1] "Madrid"

Esto da respuesta a una pregunta de Rubén.

La función es en su mayor parte (salvo algunos retoques más estéticos que otra cosa míos) de Luz Frías, que hizo omiso caso de la inexistente docuentación del INE sobre su servicio de mapas y capturó directamente la petición que el portal de Cartociudad hace al servicio.

storr: como Redis, pero con R

R

Probablemente no habéis utilizado nunca Redis. Redis es un sistema de almacenamiento basado en parejas clave-valor. Es similar a un diccionario de Python o a un entorno en R. Salvo que el almacenamiento es externo al proceso: los datos se guardan en un sistema distribuido y potencialmente ilimitado en cuanto a capacidad.

Si queréis probar algo parecido, además de los diccionarios y los entornos, podéis probar con storr , un paquete reciente de R. Aquí tenéis una minisesión de ejemplo:

Lo poco y lo mucho; lo malo, lo regular y lo bueno

R

Estos días pasados ha habido un hilo en la lista de correo de ayuda de R en español (¿todavía no te has dado de alta en ella?) en la que alguien preguntaba cómo crear paquetes y dónde encontrar documentación al respecto.

La buena intención de quienes han tratado de ayudarle, me temo, ha sido contraproducente. Lo han empapelado con una lista (casi con aspiraciones de exhaustividad) de recursos y más recursos en los que se indica cómo resolver el problema.