Vai al contenuto principale

Tutorial sul reshaping dei dati in R

Scopri il reshaping dei dati in R, le diverse funzioni come rbind(), cbind(), insieme a Melt(), Dcast() e, infine, la funzione di trasposizione.
Aggiornato 29 set 2026  · 7 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Il data reshaping in R consiste nel disporre righe e colonne come preferisci per usarle in base alle tue esigenze; per lo più i dati vengono gestiti come data frame in R per eseguire l’elaborazione con funzioni come "rbind()", "cbind()", ecc.

In questo processo, rimodelli o riorganizzi i dati in righe e colonne. Il reshaping è la riorganizzazione dei dati in un modo specifico di cui hai bisogno per procedere con l’elaborazione.

Creare i tuoi dati

Creiamo un generatore di numeri casuali e prepariamo colonne da concatenare nel data frame. Inseriamo anche l’id per un uso successivo. "set.seed(123)" serve a produrre numeri casuali riproducibili, così lo stesso campione viene ottenuto su qualsiasi macchina. Vengono create tre variabili, colm1, colm2, colm3. Con l’aiuto di "sample()" si generano valori da 1 a 15, con possibile ripetizione. Inoltre, si usa un data frame per memorizzare i dati in tabella, e si aggiunge un id che è un numero univoco.

set.seed(123)
N <- 15
colm1  <- sample(1:15, N, replace=TRUE)
colm2  <- sample(1:15, N, replace=TRUE)
colm3  <- sample(1:15, N, replace=TRUE)
df_Temp <- data.frame(colm1, colm2,colm3)
df_Temp$id<-seq(nrow(df_Temp))
df_Temp

Il codice sopra fornisce il seguente output, con tre colonne chiamate "colm1", "colm2", "colm3" e un id da 1 a 15. I valori nelle rispettive colonne sono riempiti da 1 a 15, con alcuni numeri ripetuti e altri che possono non comparire.

 colm1   colm2   colm3  id
  15      11     14     1
  15      5      3      2
  3       3      4      3
  14      11     14     4
  3       9      1      5
  10      12     11     6
  2       9      7      7
  6       9      5      8
  11      13     12     9
  5       3      15     10
  4       8      10     11
  14      10     13     12
  6       7      7      13
  9       10     9      14
 10       9      9      15 

Funzione cbind

Uso: usata per combinare vettori, matrici e data frame per colonne.
Parametri: cbind(v1,v2): v1, v2 possono essere vettori, matrici o data frame

Vediamo un esempio di binding in azione.

L’id può essere selezionato con "df_Temp[,4]" mentre "df_Temp[,2]" seleziona "colm2" di df_Temp come sotto: questi agiscono come parametri di "cbind()" e vengono salvati nella variabile "cbindexample". Successivamente, i nomi delle colonne possono essere cambiati con "colnames()", che accetta la variabile con l’input di vettori c e assegna nuovi valori, cioè "newid", "new_colm2".

cbindexample<-cbind(df_Temp[,4],df_Temp[,2])
colnames(cbindexample)<- c('newid','new_colm2')
cbindexample

Il codice sopra produce il seguente output, che mostra come unire due colonne, id e column2, usando la funzione "cbind" per creare un nuovo data frame. Inoltre, il nome della colonna è stato cambiato in "new_colm2" mentre "id" è diventato "newid".

newid   new_colm2
1         11
2         5
3         3
4         11
5         9
6         12
7         9
8         9
9         13
10         3
11         8
12         10
13         7
14         10
15         9

Funzione rbind:

Uso: rbind si usa per combinare vettori, matrici o data frame per righe.
Parametri: rbind(v1,v2): v1, v2 possono essere vettori, matrici o data frame.

Creiamo un nuovo vettore chiamato "new_vector" e combinalo con il nuovo "cbindexample" a 2 colonne usando "rbind", dove entrambi vengono concatenati e salvati in "rbindexample".

new_vector<- c(16,15)
rbindexample<- rbind(cbindexample,new_vector)
rbindexample

Il codice sopra produce l’output seguente, dove viene aggiunta una nuova riga con i valori 16 e 15 rispettivamente in "newid" e "new_colm2".

newid    new_colm2
1        11
2        5
3        3
4        11
5        9
6        12
7        9
8        9
9        13
10       3
11       8
12       10
13       7
14       10
15       9
16       15

Funzione Melt:

Uso: La funzione Melt converte un oggetto in uno stato "fuso", cioè prende più colonne di dati e le converte in un’unica colonna di dati.
Parametri: melt(data,…,na.rm=FALSE/TRUE, value.name=”value” ),
Data: Input che vuoi fondere.
...: Input passati da o verso altre funzioni.
Na.rm: Serve a convertire i valori mancanti espliciti in mancanti impliciti.
Value.name: per memorizzare i valori nelle variabili
Vediamo il codice con cui "fondi" i dati usando la variabile id in un’unica colonna con nome colonna e valore:

Importa la libreria chiamata "reshape2" con "library()" e usa melt per combinare le colonne di "dfTemp" chiamate colm1, colm2, colm3 in un unico posto chiamato "variable" in base alla variabile "id".

library(reshape2)
molted=melt(df_Temp,id.vars=c("id"))
molted
id    variable value
1    colm1    15
2    colm1     15
3    colm1     3
4    colm1     14
5    colm1     3
6    colm1     10
7    colm1     2
8    colm1     6
9    colm1     11
10    colm1     5
11    colm1     4
12    colm1     14
13    colm1     6
14    colm1     9
15    colm1     10
1    colm2     11
2    colm2     5
3    colm2     3
4    colm2     11
5    colm2     9
6    colm2     12
7    colm2     9
8    colm2     9
9    colm2     13
10    colm2     3
11    colm2     8
12    colm2     10
13    colm2     7
14    colm2     10
15    colm2     9
1    colm3     14
2    colm3     3
3    colm3     4
4    colm3     14
5    colm3     1
6    colm3     11
7    colm3     7
8    colm3     5
9    colm3     12
10    colm3     15
11    colm3     10
12    colm3     13
13    colm3     7
14    colm3     9
15    colm3     9

L’output sopra mostra che quando fondi i dati di colm1, colm2, colm3 in base alla variabile id, questi vengono combinati in un’unica colonna chiamata "variable" e i valori delle colonne sono contenuti in "value".

Funzione Dcast:

Uso: quando hai un dataset fuso, puoi riconvertirlo nel formato originale usando questa funzione.
Parametri: dcast(data,id_variable~value),
Data: dati fusi che devono essere convertiti nella forma originale.
Id_variable: una o più colonne usate per fondere i dati di altre colonne in un’unica colonna.
~: dopo questo simbolo, usiamo i valori o la nuova colonna fusa del dataset fuso.

Qui sotto vedi il codice in cui si importa "reshape2" con "library()"; "dcast()" prende come primo parametro i dati su cui è stata eseguita la funzione "molt()" e il segno "~" con id, dove si formano le nuove colonne fuse.

library(reshape2)
dcast(molted,id~variable)
id    colm1    colm2    colm3
1        15        11        14
2        15        5         3
3        3        3         4
4        14        11       14
5        3        9         1
6        10        12        11
7        2         9         7
8        6        9         5
9       11        13        12
10       5        3        15
11       4        8        10
12       14        10        13
13       6        7        7
14       9        10        9
15      10        9        9

Puoi vedere che i dati cambiati con la funzione "molt()" tornano al dataset originale. Ci sono tre colonne con i rispettivi valori e l’id in una colonna separata.

Funzione di trasposizione:

Uso: Serve a trasformare le righe in colonne e le colonne in righe.
Parametri: t(data), dove data è il data frame da passare per ottenere la trasposizione.

Convertiamo righe in colonne e viceversa usando la funzione di trasposizione. Si può fare semplicemente con "t(df_Temp)", come sotto.

trans <- t(df_Temp)
trans

Il codice sopra fornisce il seguente output:

colm1    15    15    3    14    3    10    2    6    11    5    4    14    6    9    10
colm2    11    5    3    11    9    12    9    9    13    3    8    10    7    10    9
colm3    14    3    4    14    1    11    7    5    12    15    10    13    7    9    9
id    1    2    3    4    5    6    7    8    9    10    11    12    13    14    15

Si vede che il data frame con forma 15 righe e quattro colonne è stato convertito in 15 colonne e 3 righe tramite trasposizione.

Congratulazioni

Congratulazioni, sei arrivato alla fine di questo tutorial!

In questo tutorial, hai visto diverse funzioni di R come "rbind()", "cbind()", insieme a "Melt()", "Dcast()" e, infine, la funzione di trasposizione.

Se vuoi saperne di più su R, segui il corso Introduction to R di DataCamp e dai un’occhiata alla nostra guida R Packages: A Beginner's Tutorial.

Riferimenti:
Funzioni Melt

Argomenti
R
Data Science

Corsi su R

Corso

Introduzione a R

4 ore
3.1M
Impara le basi dell'analisi dei dati in R, compresi vettori, liste e data frame, e fai pratica con R con set di dati reali.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro