Guida per Principianti: Riformattazione dei Dati in R

Ciao a tutti, futuri programmatori R! Oggi ci imbarcheremo in un viaggio emozionante nel mondo della riformattazione dei dati in R. Non preoccupatevi se non avete mai programmato prima – sarò il vostro guida amichevole, e prenderemo tutto passo per passo. Alla fine di questo tutorial, sarete in grado di riformattare i dati come un professionista!

R - Data Reshaping

Cos'è la Riformattazione dei Dati?

Prima di immergerci, parliamo di cosa significhi davvero riformattare i dati. Immagina di avere un mucchio di mattoncini Lego. La riformattazione dei dati è come riorganizzare quei mattoncini per costruire diverse strutture. In R, facciamo la stessa cosa con i nostri dati – li riorganizziamo per renderli più utili per l'analisi.

Ora, diamo 몰 diversified esempi pratici!

Unire Colonne e Righe in un Data Frame

Aggiungere Colonne

Iniziamo con qualcosa di semplice. Immagina di avere un data frame con informazioni su frutti:

frutti <- data.frame(
nome = c("Mela", "Banana", "Ciliegia"),
colore = c("Rosso", "Giallo", "Rosso")
)
print(frutti)

Questo stamperà:

nome  colore
1   Mela    Rosso
2 Banana  Giallo
3 Ciliegia   Rosso

Ora, diciamo che vogliamo aggiungere una nuova colonna per il prezzo di ogni frutto:

frutti$prezzo <- c(0.5, 0.3, 0.7)
print(frutti)

E voilà! Abbiamo aggiunto una nuova colonna:

nome  colore prezzo
1   Mela    Rosso   0.5
2 Banana  Giallo   0.3
3 Ciliegia   Rosso   0.7

Aggiungere Righe

Cosa succede se vogliamo aggiungere un nuovo frutto alla nostra lista? Possiamo farlo anche questo!

nuovo_frutto <- data.frame(nome = "Dattero", colore = "Marrone", prezzo = 0.6)
frutti <- rbind(frutti, nuovo_frutto)
print(frutti)

Questo ci darà:

nome  colore prezzo
1   Mela    Rosso   0.5
2 Banana  Giallo   0.3
3 Ciliegia   Rosso   0.7
4 Dattero  Marrone   0.6

Unire Data Frames

Ora, diciamo che abbiamo un altro data frame con informazioni nutrizionali:

nutrizione <- data.frame(
nome = c("Mela", "Banana", "Ciliegia", "Dattero"),
calorie = c(52, 89, 50, 282)
)

# Unire i due data frames
informazioni_frutti <- merge(frutti, nutrizione, by = "nome")
print(informazioni_frutti)

Questo ci darà:

nome  colore prezzo calorie
1   Mela    Rosso   0.5       52
2 Banana  Giallo   0.3       89
3 Ciliegia   Rosso   0.7       50
4 Dattero  Marrone   0.6      282

Non è fantastico? Abbiamo combinato informazioni da due fonti diverse in un unico data frame completo!

Sciogliere e Fondere

Ora, entriamo in alcune tecniche di riformattazione più avanzate. Useremo il pacchetto reshape2, quindi assicuratevi di installarlo e caricarlo:

install.packages("reshape2")
library(reshape2)

Sciogliere i Dati

Sciogliere i dati è come sciogliere un blocco di ghiaccio – tutto diventa fluido e può essere riformato. Sciolgiamo i nostri dati informazioni_frutti:

sciolti_frutti <- melt(informazioni_frutti, id.vars = "nome")
print(sciolti_frutti)

Questo ci darà:

nome variabile    valore
1   Mela    colore    Rosso
2 Banana    colore  Giallo
3 Ciliegia    colore    Rosso
4 Dattero    colore  Marrone
5   Mela    prezzo   0.50
6 Banana    prezzo   0.30
7 Ciliegia    prezzo   0.70
8 Dattero    prezzo   0.60
9   Mela  calorie  52.00
10 Banana  calorie  89.00
11 Ciliegia  calorie  50.00
12 Dattero  calorie 282.00

Vedete come ogni attributo (colore, prezzo, calorie) è diventato una riga separata? Questo è incredibilmente utile per certi tipi di analisi e visualizzazione.

Fondere i Dati Sciolti

Ora che abbiamo sciolto i nostri dati, possiamo ricastarli in una nuova forma. Diciamo che vogliamo avere i frutti come colonne e gli attributi come righe:

fusi_frutti <- dcast(sciolti_frutti, variabile ~ nome)
print(fusi_frutti)

Questo ci darà:

variabile   Mela Banana Ciliegia Dattero
1    colore    Rosso  Giallo    Rosso  Marrone
2    prezzo    0.50   0.30    0.70    0.60
3  calorie   52.00   89.00   50.00  282.00

Impressionante, vero? Abbiamo completamente trasformato la nostra struttura dati!

Conclusione

Complimenti! Avete appena fatto i vostri primi passi nel mondo della riformattazione dei dati in R. Ricordate, come costruire con Lego, la chiave è sperimentare e trovare la struttura che funziona meglio per le vostre esigenze. Non abbiate paura di giocare con queste funzioni – è così che imparerete veramente!

Ecco una tabella di rapida riferimento dei metodi che abbiamo coperto:

Metodo Funzione Scopo
Aggiungere Colonne $ o cbind() Aggiungere nuove variabili a un data frame
Aggiungere Righe rbind() Aggiungere nuove osservazioni a un data frame
Unire merge() Combinare dati da diversi data frames
Sciogliere melt() Riformattare dati ampi in formato lungo
Fondere dcast() Riformattare dati lunghi in formato ampio

Continuate a praticare, e presto sarete in grado di riformattare i dati come un maestro scultore! Buon coding!

Credits: Image by storyset