# PUNTO 1 ------------------------------------------------
HW 04 - tidyr
Data di consegna: martedì 28 ottobre 2025
Introduzione
In questo compito utilizzerai i comandi utili per:
- organizzare una tabella in formato
long - organizzare una tabella in formato
wide - effettuare l’operazione di
jointra due tabelle - effettuare alcune operazioni di unione tra tabelle
Obiettivi di apprendimento
Lo svolgimento di questo compito ti permetterà di:
- usare R per organizzare una tabella in output nel formato opportuno a seconda delle esigenze di presentazione
- usare R per integrare dati presenti su fonti diverse
- usare R per rispondere ad alcune domande del management di un’azienda di eCommerce
- usare R per rispondere ad alcune domande del management di un’ateneo italiano
Istruzioni per l’uso
- Crea un progetto associandolo ad una cartella “RLab_hw04_cognome_nome” sul tuo disco: nel mio caso il nome della cartella sarebbe “RLab_hw04_vistocco_domenico”
Esercizi
Rispondi ai vari punti salvando le risposte in tre file R separati per ciascuna delle tre parti con il nome “hw04-parte-XX_cognome_nome.R”: ad esempio nel mio caso il nome del file associato alla prima parte del compito sarebbe “hw04-parte-01_vistocco_domenico.R”.
Per rispondere ad ogni punto inserisci un’etichetta di sezione (che puoi inserire nello script usando la combinazione di testi CTRL/CMD + SHIFT + R) utilizzando il punto cui sta rispondendo. Ad esempio, per rispondere al punto 1 del compito, usa un’etichetta di sezione:
Utilizza i commenti per rispondere alle domande in cui viene chiesta un’interpretazione da parte tua: lo script deve cioè essere funzionante quando si eseguono tutti i comandi con il pulsante Source.
Lo script viene valutato sia in base alla correttezza del codice che in base alla qualità (stile utilizzato per rendere lo script leggibile ed ordinato).
Ricordati di utilizzare i commenti per eventuali risposte aperte se presenti.
Parte 1: Analisi degli ordini di un’azienda di eCommerce
Copia all’interno della cartella associato al progetto di questa settimana i file che trovi su questa cartella compressa: dati-eCommerce.zip.
Nella cartella compressa sono presenti i seguenti quattro file relativi ad un’azienda che opera nel settore dell’eCommerce:
eCommerce-CustomerMD.csv: identificativo e paese dei clientieCommerce-ProductMD.csv: identificativo, descrizione, categoria e sottocategoria dei prodottieCommerce-TransactionsHistory.xlsx: storico degli ordini con informazioni relative all’identificativo ai singoli ordini. Per ciascun ordine sono riportati l’identificativo del prodotto, la quantità acquistata, il prezzo unitario e la data dell’ordineeCommerce-TransactionsL3M.xlsx: ordini relativi agli ultimi tre mesi. La struttura è equivalente a quella del file con lo storico degli ordini
Importa le quattro tabelle dati in
Runiformando i nomi delle tabelle sfruttando la funzioneclean_names{janitor}Sfruttando un’oportuna operazione di insieme (
intersect,union,union_all,setdiffosymdiff) crea una tabella degli ordini integrando i dati storici con i dati relativi agli ultimi tre mesiSfruttando un’opportuna operazione di
jointra le tabelle integra i dati degli ordini con le informazioni presenti nelle tabelle degli ordini e dei prodotti. Poiché l’obiettivo è di effettuare un’analisi dell’andamento degli ordini fa in modo di conservare nella tabella finale tutti gli ordini presentiQuali sono i dieci prodotti più venduti dell’azienda, ovvero quelli che generano il fatturato più alto?
Per rispondere aggiungi alla tabella una colonna sales ottenuta moltiplicando le colonne quantity (quantità vendute) e price (prezzo unitario)
- Quali sono i primi tre prodotti di ogni sottocategoria merceologica?
Per rispondere, oltre ai verbi di manipolazione di dplyr, puoi sfruttare la funzione slice_head disponibile nello stesso package
Quali sono i cinque paesi in cui l’azienda effettua meno vendite?
Quali sono i cinque paesi in cui l’azienda effettua meno vendite per ogni sottocategoria merceologica?
Durante l’ultimo anno solare per cui sono disponibili i dati, quanti ricavi sono stati generati in totale nell’ambito di ogni categoria?
Qual è il peso percentuale di ogni categoria sul portafoglio totale di prodotti per l’anno in corso?
Puoi calcolare il peso percentuale di ciascuna categoria come rapporto tra l’ammontare delle vendite della categoria e l’ammontare di vendite totale nel periodo considerato, moltiplicando il risultato per 100. Sfrutta a tale scopo in maniera combinata le funzioni group_by e mutate
- Sulla base dei dati storici, quali sono i tre mesi dell’anno in cui l’azienda deve aspettarsi un picco di vendite per le categorie stagionali (sottocategorie:
Christmas,EastereSummer)?
Parte 2: Manipolazione dei dati relativi agli indicatori degli atenei italiani
Copia all’interno della cartella associato al progetto di questa settimana i file che trovi su questa cartella MS-Excel: indicatori-anvur-ateneo_2024.xlsx.
Importa le tabelle presenti nei quattro fogli di lavoro, uniformando i nomi di colonna sfruttando la funzione
clean_names {janitor}, eliminando le colonneambitoedid_annoad aggiungendo una colonnasezionecon un valore costante associato alla sezione degli indicatori, ovvero, a seconda della particolare tabella:Bilancio,Cittadinanza,DidatticaePersonaleUnisci le quattro tabelle relative a ciascuna sezione di indicatori in una tabella
indicatori_2024Aggiungi alla tabella una colonna
indicatorecalcolando il rapporto tra le colonnenumeratoreedenominatoree mantieni nella tabella solo gli indicatori calcolati eliminando le colonnenumeratoreedenominatoreEffettua un’imputazione dei valori mancanti utilizzando i valori medi degli indicatori per dimensione (
dimensioni) e macro-regione (regione_macro)
Sfrutta in maniera opportuna le funzioni group_by {dplyr}, mutate {dplyr} e if_else {dplyr}
Crea una tabella in cui riporti sulle righe le macro regioni (
regioni-macro) e sulle colonne il numero totale di iscritti (indicatoreNumero iscritti, sezioneDidattica), il numero totale di immatricolati (indicatoreNumero immatricolati, sezioneDidattica) e l’età media dei docenti (indicatoreEtà media docenti, sezionePersonale)Crea una tabella
atenei_napoliconservando solo i dati relativi ai seguenti atenei: Napoli Benincasa, Napoli Federico II, Napoli L’Orientale e Napoli ParthenopeA partire dalla tabella ottenuta al punto precedente, costruisci una tabella in cui sulle righe consideri riporti i seguenti indicatori della sezione
Didattica:Numero iscritti,Numero laureati,Rapporto Iscritti / Docenti, sulle colonne i quattro atenei e nelle celle i valori degli indicatori corrispondenti a ciascun incrocio
Parte 3: dataset relativi al paper Tidy data
Leggi il paper Tidy data disponibile su questo link: nella lettura concentrati sulla descrizione del problema ma tralascia il codice R che è molto datato per cui le funzioni indicate nel paper sono deprecated o non più supportate.
Importa la tabella
pew_table_4.csv2(tabella 4 del paper) e scrivi il codice utile a riportarla in formatotidy, come descritto nel paperImporta la tabella billboard_table_7.csv (tabella 7 del paper) e scrivi il codice utile a riportarla in formato
tidy, come descritto nel paperImporta la tabella weather_table_11.xlsx (tabella 11 del paper) e scrivi il codice utile a riportarla in formato
tidy, come descritto nel paper
Consegna
Per inviare la tua soluzione:
- Salva il file .R con le tue soluzioni
- Chiudi il progetto RStudio
- Comprimi in un file .zip la cartella associata al progetto
- Carica il file .zip salvato in risposta al compito assegnato su Teams
Valutazione
Totale punti disponibili: 110 punti
| Component | Punti |
|---|---|
| Es 1 - 20 | 100 |
| Workflow & formattazione | 101 |
Footnotes
La valutazione al “Workflow & formattazione” tiene conto del principio di riproducibilità del codice: lo script caricato deve funzionare senza errori su qualunque PC dando gli stessi risultati↩︎