Ho un frame di dati in cui una particolare colonna ha un insieme di valori specifici (diciamo, 1, 2, ..., 23). Quello che mi piacerebbe fare è convertire da questo layout a quello in cui il frame avrebbe colonne extra 23 (in questo caso), ognuna delle quali rappresenta uno dei valori dei fattori. I dati in queste colonne sarebbero booleani che indicano se una fila particolare aveva un dato valore del fattore ... Per mostrare un esempio specifico: telaioRisagoma frame dati per convertire i fattori in colonne in R
Fonte:
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 desiderato:
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
Non ho problemi a farlo in un ciclo ma speravo che ci sarebbe stato un modo migliore. Finora reshape()
non ha prodotto il risultato desiderato. L'aiuto sarebbe molto apprezzato.
Grazie. Avrei dovuto pensare a creare una colonna di valori. È interessante notare che l'approccio value column/reshape richiede 1,4 secondi su 9.500 righe con 26 livelli di fattore, mentre l'utilizzo dell'approccio iterativo (su livelli) richiede solo 0,6 secondi. –
Non essere ingannato da queste funzioni: la funzione 'reshape' stessa esegue l'iterazione se la guardi. Ma fa molto altro oltre a quello, che si aggiungerà al tempo complessivo. Cose come 'rimodella 'non sono destinate a dare risultati migliori; sono lì solo per semplificare la manipolazione dei dati. – Shane