Tengo un marco de datos donde una columna en particular tiene un conjunto de valores específicos (digamos, 1, 2, ..., 23). Lo que me gustaría hacer es convertir de este diseño a uno, donde el marco tendría 23 columnas adicionales (en este caso), cada una representando uno de los valores de los factores. Los datos de estas columnas serían booleanos que indican si una fila particular tenía un valor determinado factor ... Para mostrar un ejemplo específico: MarcoReformar el marco de datos para convertir factores en columnas en R
Fuente:
ID DATE SECTOR
123 2008-01-01 1
456 2008-01-01 3
789 2008-01-02 5
... <more records with SECTOR values from 1 to 5>
formato deseado:
ID DATE SECTOR.1 SECTOR.2 SECTOR.3 SECTOR.4 SECTOR.5
123 2008-01-01 T F F F F
456 2008-01-01 F F T F F
789 2008-01-02 F F F F T
No tengo problemas para hacerlo en un ciclo, pero esperaba que hubiera una mejor manera. Hasta ahora reshape()
no produjo el resultado deseado. La ayuda sería muy apreciada.
Gracias. Debería haber pensado en crear una columna de valor. Curiosamente, el enfoque de valor columna/remodelación toma 1.4 segundos en 9.500 filas con 26 niveles de factor, mientras que el uso de enfoque iterativo (sobre niveles) toma solo 0.6 segundos. –
No se deje engañar por estas funciones: la función 'rehape' en sí misma itera si lo mira. Pero hace mucho más además de eso, lo que aumentará el tiempo total. Cosas como 'remodelar' no tienen la intención de funcionar mejor; están ahí solo para facilitar la manipulación de datos. – Shane