2012-09-11 14 views
46

Estoy intentando entender por qué el desarrollo pasó de reshape a reshape2 paquete. Parece que son funcionalmente iguales, sin embargo, no puedo actualizar a reshape2 actualmente debido a una versión anterior de R que se ejecuta en el servidor. Estoy preocupado por la posibilidad de una falla importante que hubiera cambiado el desarrollo a un paquete completamente nuevo en lugar de simplemente continuar el desarrollo de reshape. ¿Alguien sabe si hay un defecto importante en el paquete reshape?remodelar vs. reshape2 en R

+0

'reshape2' replaced' reshape'. Pero, ¿cuál es tu pregunta? – Andrie

+1

Has encontrado los documentos oficiales ¿verdad?http://cran.r-project.org/web/packages/reshape2/reshape2.pdf ¿Qué tal esta explicación de cómo usar reshape2? http://wiki.stdout.org/rcookbook/Manipulating%20data/Converting%20data%20between%20wide%20and%20long%20format/ – Wilduck

+0

sí, vi los documentos oficiales. echaremos un vistazo a tu segundo enlace, gracias. Estoy tratando de descubrir qué cambió? ¿cómo es 'reshape2' diferente de' reshape'? – Alex

Respuesta

61

reshape2 deja que Hadley reinicie reshape que era mucho, mucho más rápido, al tiempo que evitaba arruinar las dependencias y los hábitos de las personas.

https://stat.ethz.ch/pipermail/r-packages/2010/001169.html

Reshape2 es un reinicio del paquete de cambio de forma. Han pasado más de cinco años desde la primera versión del paquete, y en ese momento aprendí muchísimo sobre la programación R y cómo trabajar con los datos en R. Reshape2 usa ese conocimiento para crear un nuevo paquete para reconfigurando datos mucho más enfocados y mucho más rápidos.

Esta versión mejora la velocidad a costa de la funcionalidad, por lo que tengo que le cambió el nombre a reshape2 para evitar causar problemas a los usuarios existentes. Según los comentarios de los usuarios, puedo reintroducir algunas de estas características.

¿Qué hay de nuevo en reshape2:

  • considerablemente más rápido y más eficiente de la memoria gracias a un tanto algoritmo mejor subyacente que utiliza la potencia y velocidad de de subconjuntos en la mayor medida, en la mayoría de los casos sólo hacer una copia única de los datos.

  • fundido se sustituye por dos funciones dependiendo del tipo de salida: dcast produce tramas de datos, y acast produce matrices/arrays.

  • márgenes multidimensionales son ahora posibles: grand_row y grand_col se han caído: ahora el nombre del margen se refiere a la variable que tiene su valor ajustado a (todos).

  • se han eliminado algunas características como el operador de conversión |, y la capacidad de devolver múltiples valores desde una función de agregación. Estoy razonablemente seguro de que ambas operaciones se realizan mejor por plyr.

  • una nueva sintaxis elenco que le permite formar de nuevo basado en funciones
    de variables (basado en la misma sintaxis subyacente como plyr):

  • mejores prácticas de desarrollo como espacios de nombres y pruebas.

+0

Gracias Matt! Te agradezco que publiques esto de la lista de correo en el foro más conocido públicamente aquí. – isomorphismes

+1

* la capacidad de devolver múltiples valores desde una función de agregación * Consulte la pregunta relacionada: http://stackoverflow.com/questions/21477040/reshape2-multiple-results-of-aggregation-function – landroni