2011-10-27 8 views
10

Ho un data.frame che assomigliaDevo rimodellare questi dati ampi per utilizzare in modo efficace ggplot2?

Year Crustaceans  Cod  Tuna Herring Scorpion.fishes 
1 1950 58578630 2716706 69690537 87161396  15250015 
2 1951 59194582 3861166 34829755 51215349  15454659 
3 1952 47562941 4396174 31061481 13962479  12541484 
4 1953 68432658 3901176 23225423 13229061   9524564 
5 1954 64395489 4412721 20798126 25285539   9890656 
6 1955 76111004 4774045 13992697 18910756   8446391 

Con diversi più specie (colonne), e gli anni che vanno dal 1950 al 2006. mi piacerebbe esplorare con ggplot2 (che sto solo imparando). Devo trasformare questi dati in modo che la specie sia un fattore per utilizzare efficacemente ggplot2 su questi dati? In caso contrario, come evitare di dover creare un livello per ogni specie singolarmente? Se sì, (o in entrambi i casi) un puntatore rapido sull'uso di reshape o plyr per trasformare i nomi delle colonne in un fattore sarebbe molto apprezzato.

risposta

9

Una semplice trasformazione utilizzando melt (dal pacchetto rimodella/2) è sufficiente. Vorrei fare

library(reshape2) 
qplot(Year, value, colour = variable, data = melt(df, 'Year'), geom = 'line') 
3

Ho trovato il seguente collegamento estremamente utile all'apprendimento di rimodellare. Reshape e plyr sono funzioni molto facili da usare una volta che hai il formato (non necessariamente il più veloce (il pacchetto data.table è scritto usando un C così è molto più veloce) di come funzionano. Questo tutorial pdf è una grande risorsa per impararlo . anche io suggerisco di copiare la linea da esempio (fusione) in uno script e l'esecuzione di uno alla volta per vedere il risultato.

http://had.co.nz/stat405/lectures/19-tables.pdf

+0

Qualsiasi altro modo per accedere a un buon tutorial su questo? il collegamento è ora broken :( – ae0709

+1

Ora utilizzerei il pacchetto ** tidyr ** che ha una vignetta incorporata. –

Problemi correlati