Puede tener datos en formato ancho o en formato largo. Esto es bastante importante, ya que los métodos utilizables son diferentes, dependiendo del formato. Sé que tiene que trabajar con melt()y cast()desde el paquete de remodelación, pero parece que hay algunas cosas que no entiendo.
¿Alguien me puede dar una breve descripción de cómo hacer esto?
data-transformation
r
Semblante
fuente
fuente

meltycast. Allí la conversión de formato ancho a largo se realiza en una etapa. Realmente no hay nada más especial.Respuestas:
Hay varios recursos en el sitio web de Hadley Wickham para el paquete (ahora llamado
reshape2), incluido un enlace a un documento sobre el paquete en el Journal of Statistical Software.Aquí hay un breve ejemplo del artículo:
Observamos que los datos están en forma amplia. Para ir a la forma larga, hacemos que el
smithsmarco de datos esté fundido :Observe cómo
melt()eligió una de las variables como id, pero podemos establecer explícitamente cuál usar mediante un argumento'id':Aquí hay otro ejemplo de
?cast:Si almacenamos el marco de datos fundido, podemos convertirlo en otras formas. En la nueva versión de
reshape(llamadoreshape2) hay funcionesacast()ydcast()devuelve un resultado tipo matriz (matriz, matriz, vector) o un marco de datos respectivamente. Estas funciones también tienen una función de agregación (por ejemplomean()) para proporcionar resúmenes de datos en forma fundida. Por ejemplo, siguiendo el ejemplo anterior de Calidad del aire, podemos generar, en forma amplia, valores medios mensuales para las variables en el conjunto de datos:En realidad, hay sólo dos funciones principales en
reshape2:melt()y elacast()ydcast()el emparejamiento. Mire los ejemplos en las páginas de ayuda para estas dos funciones, vea el sitio web de Hadley (enlace arriba) y mire el documento que mencioné. Eso debería ayudarte a comenzar.También puede consultar el
plyrpaquete de Hadley que hace cosas similaresreshape2pero está diseñado para hacer mucho más.fuente
dcast(aqm, month ~ variable), ¿qué haría esto sin la función de agregación??dcastque le habría dicho esto (vea los detalles para el argumentofun.aggregate).Quick-R tiene un ejemplo simple de uso del paquete de remodelación
Consulte también
?reshape( ENLACE ) para ver la forma Base R de moverse entre formato ancho y largo.fuente
No tienes que usar
meltycast.La remodelación de datos se puede hacer de muchas maneras. En su ejemplo particular en su cita, usar
recastconaggregateera redundante porqueaggregatela tarea funciona bien por sí misma.Me gusta cómo, en tu publicación de blog, explicas lo que
meltestá haciendo. Muy pocas personas entienden eso y una vez que lo ve, se vuelve más fácil ver cómocastfunciona y cómo puede escribir sus propias funciones si lo desea.fuente
Ver el wiki reshape2 . Seguramente proporciona más ejemplos como podría esperar.
fuente
Simplemente notando que no hay referencia a los métodos de remodelación más eficientes y extensos
data.tableaquí, así que publico sin más comentarios la excelente respuesta de Zach / Arun en StackOverflow para una pregunta similar:https://stackoverflow.com/questions/6902087/proper-fastest-way-to-reshape-a-data-table/6913151#6913151
Y en particular está la maravillosa viñeta en la
data.tablepágina de GitHub:https://github.com/Rdatatable/data.table/wiki/Getting-started
fuente