8.3 Resumen y referencias

En esta sección hemos aprendido a distinguir entre datos en formato largo (o arreglados) y ancho. Los dos tipos tienen sus ventajas e inconvenientes. Los datos arreglados son conceptualmente más simples de describir y comprender. Además, facilitan ciertas transformaciones, como las operaciones por bloques o el filtrado (selección de un determinado subconjunto de las filas).

Muchas transformaciones de datos implican operar sobre valores que, en una tabla arreglada, estarían en filas distintas. Para ello es necesario yuxtaponerlos, i.e., colocarlos en una misma fila. Para ello es necesario pivotar la tabla. Suele ser habitual volver a arreglar los datos después de realizadas estas transformaciones.

De hecho, existen flujos de trabajo de manipulación de datos que consisten en una secuencia de pivotaciones entre el formato largo y distintas versiones de formatos anchos en los que se realizan determinadas operaciones.

Estas operaciones de pivotación no son sencillas con otras herramientas habituales, como SQL o Spark. En R existe una función de serie, reshape, que permite realizar estas transformaciones. Sin embargo, no se recomienda su uso: es muy mejorable, particularmente, en lo concerniente a su usabilidad.

Debido a esas limitaciones, se introdujo en R el paquete reshape2 (que es, a su vez, una evolución de un paquete anterior, reshape). Este paquete contiene esencialmente dos funciones fundamentales, melt y dcast, que son las que hemos tratado aquí.

El autor de este paquete teorizó más tarde sobre los datos en formatos anchos y largos en el artículo, muy recomendable, Tidy Data. Además, a raíz de ese artículo, desarrolló un paquete adicional, tidyr. El paquete tidyr tiene una función similar a melt, gather y otra similar a dcast, spread. En http://www.milanor.net/blog/reshape-data-r-tidyr-vs-reshape2/ se comparan ambos paquetes.