Nella pratica, i dati sono ospitati su server diversi e in molti file differenti. Quando i dati di cui hai bisogno provengono da più fonti, è fondamentale sapere come aggregarli in modo da perdere il meno possibile e creare abbinamenti che abbiano davvero senso rispetto alla struttura dei tuoi dati.
Questo tutorial ti guiderà attraverso:
Unire i dataset orizzontalmente e verticalmente
Cosa sono le chiavi primarie e come danno struttura ai tuoi dati
Diversi tipi di join (ad es., left-join, inner-join, full-join) e come scegliere tra loro
Un problema comune a cui prestare attenzione e come risolverlo
Concatenare i dataset
A livello generale, ci sono due modi per unire i dataset: puoi aggiungere informazioni aggiungendo più righe oppure aggiungendo più colonne al tuo dataset. In generale, quando hai dataset che hanno lo stesso insieme di colonne o lo stesso insieme di osservazioni, puoi concatenarli rispettivamente in verticale o in orizzontale. Impariamo con alcuni esempi.
Aggiungere i dataset verticalmente
Quando hai più dataset con lo stesso insieme di colonne, puoi concatenare un dataset a un altro in verticale. Cioè, mantenendo le colonne del tuo dataset, puoi aggiungere più righe. Avere tali informazioni in un unico file ti renderà più semplice aggregare e avere una visione d’insieme, senza il fastidio di passare continuamente da un file all’altro e perderne il filo.
Dataset 1
Make
Num models
Honda
63
BMW
10
Dataset 2
Make
Num models
Ford
26
Tesla
4
È importante notare che, se hai la stessa osservazione presente in più dataset e li concateni verticalmente usando rbind(), finirai con osservazioni duplicate nella tua tabella. E anche se i due dataset devono avere lo stesso insieme di variabili (ovvero colonne), non è necessario che siano nello stesso ordine. Verificalo tu stesso nella console qui sotto!
Nell’area di lavoro ci sono due dataset chiamati dataset1 e dataset2 che hai visto sopra. Prova a riordinare le colonne di dataset1. Chiama rbind() su dataset1 e dataset2 così come su reordered_dataset1 e dataset2.
Quando hai dataset che rappresentano lo stesso insieme di osservazioni, puoi concatenarli orizzontalmente. Questa volta, mantenendo le righe del tuo dataset, puoi aggiungere più colonne. In questi casi, dovresti verificare che l’ordine delle osservazioni sia lo stesso. Se i tuoi dataset hanno un numero diverso di righe, oppure hanno lo stesso numero di righe ma in un ordine incoerente, potresti abbinare un insieme di colonne all’altro in modo privo di senso.
Estendiamo l’esempio precedente. Supponi di avere due file di dati: uno contiene la casa automobilistica e il numero di modelli unici offerti, e un altro contiene la casa automobilistica e le vendite totali:
Numero di modelli unici offerti
Make
Num models
Honda
63
BMW
10
Ford
26
Tesla
4
Vendite totali
Make
Sales
Ford
119157
BMW
25908
Honda
188328
Tesla
29975
È importante notare che, se hai la stessa osservazione presente in più dataset e li concateni orizzontalmente usando cbind(), finirai con colonne ridondanti nella tabella. E, sebbene i due dataset contengano informazioni correlate, l’ordinamento delle righe conta!
Nella console qui sotto, chiama cbind() su models e sales e stampa il risultato:
Secondo i principi dei dati ordinati spiegati in questo corso introduttivo, ogni osservazione di un dataset dovrebbe essere rappresentata in una riga unica. E se avessi informazioni solo su alcune righe in un dataset e volessi aggiungere informazioni solo per quelle di cui sai di più? In altre parole, cosa succede se vuoi aggiungere più colonne da un dataset a un altro, ma questi dataset non hanno lo stesso numero di osservazioni?
Chiave primaria e chiavi esterne
Il primo passo quando vuoi combinare dei dataset è cercare la chiave primaria del tuo dataset. La chiave primaria è la colonna o l’insieme di colonne che identifica in modo univoco ogni osservazione nel tuo dataset. Nell’esempio con le case automobilistiche, il numero di modelli unici offerti e le vendite totali, la chiave primaria dei tuoi dataset è la colonna make.
Ora possiamo eseguire i join, il modo standard per unire i dataset in un’unica tabella.
Tipi di join
Esistono molti tipi di join. Puoi imparare come arricchire le colonne di un dataset con quelle di un altro con i mutating join, come filtrare un dataset rispetto a un altro con i filtering join e come passare al setaccio i dataset con le operazioni insiemistiche nel corso Joining Data in R with dplyr. Di seguito alcuni dei più comuni.
left_join(x, y): restituisce tutte le righe di x e tutte le colonne di x e y. Le righe di x senza corrispondenza in y avranno valori NA nelle nuove colonne. Se ci sono più corrispondenze tra x e y, vengono restituite tutte le combinazioni delle corrispondenze.
inner_join(x, y): restituisce tutte le righe di x per cui esistono valori corrispondenti in y, e tutte le colonne di x e y. Se ci sono più corrispondenze tra x e y, vengono restituite tutte le combinazioni delle corrispondenze.
full_join(x, y): restituisce tutte le righe e tutte le colonne sia di x che di y. Dove non ci sono valori corrispondenti, la funzione restituisce NA per quello mancante.
I join menzionati sopra sono esempi di mutating join poiché combinano variabili da due dataset.
Chiavi mancanti
Supponi di avere due dataset. Il primo si chiama size e contiene i nomi delle persone e la loro taglia di maglietta:
> size
name size
1 Tom M
2 Dan XL
3 Keil S
Il secondo dataset si chiama color e contiene i cognomi delle persone, le preferenze del colore della maglietta e memorizza alcune informazioni nell’attributo row.names:
> color
surname color
Tom Jeon <NA>
Dan Smith Dark
Bob McLadden Light
Noti cosa potrebbe andare storto? I join tra due tabelle possono complicarsi quando ci sono chiavi mancanti o duplicate. In questo esempio, i data frame di R memorizzano informazioni importanti nell’attributo row.names. In questo caso, non potrai accedere alla chiave con una funzione di join, perché le funzioni di join possono accedere solo alle colonne del data frame.
Il trucco per risolvere facilmente questo problema è usare la funzione rownames_to_column() del pacchetto tibble. Restituisce una copia del tuo dataset con i nomi di riga aggiunti ai dati come colonna. Il primo argomento di rownames_to_column() è il tuo oggetto data frame e il secondo è una stringa che specifica il nome della colonna che vuoi aggiungere.
Prova a esplorare nella console qui sotto. I dataset size e color sono già caricati nel tuo workspace.
Nella realtà, i dati possono essere suddivisi in molti dataset e in molti formati diversi. Poiché R è progettato per lavorare con singole tabelle di dati, manipolare e combinare i dataset in un’unica tabella è una competenza essenziale. Completa il percorso di competenze Importing & Cleaning Data with R e impara a fare il parsing e a combinare dati in qualsiasi formato. Dai un’occhiata al tutorial R Data Import di DataCamp. Buono studio!
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.