# PUNTO 1 ------------------------------------------------
HW 05 - tidyr
Data di consegna: lunedì 28 ottobre 2024
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 - costruire un grafico che contenga elementi interattivi
- costruire un grafico animato
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 organizzare una tabella nel formato opportuno per preparare una rappresentazione grafica
- usare elementi di interazione per migliorare l’interazione dell’utente con una rappresentazione grafica
- usare elementi animati per migliorare la leggibilità di una rappresentazione grafica
Istruzioni per l’uso
- Crea un progetto associandolo ad una cartella “RLab_hw05_cognome_nome” sul tuo disco: nel mio caso il nome della cartella sarebbe: “RLab_hw05_vistocco_domenico” e copia all’interno della cartella il seguente file: dati-citta-italiane.xlsx.
Una descrizione del contenuto del file con la corrispondente legenda delle variabili è disponibile sul primo foglio (Descrizione variabili) della cartella di lavoro MS-Excel.
Rispondi ai vari punti salvando le risposte in un file R con il nome “hw04_cognome_nome.R”: ad esempio nel mio caso il nome del file sarebbe “hw04_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).
Esercizi
Ricordati di utilizzare i commenti per le risposte aperte.
Parte 1: Importazione, pulizia e preparazione dei dati
Importa il foglio
Datidel file dati-citta-italiane.xlsx nell’oggettodati_provinceuniformando i nomi della tabella sfruttando la funzioneclean_names{janitor}Importa il foglio
Codice Regionidel file dati-citta-italiane.xlsx nell’oggettocodici_regioniuniformando i nomi della tabella sfruttando la funzioneclean_names{janitor}Importa il foglio
Codice Areadel file dati-citta-italiane.xlsx nell’oggettocodici_areauniformando i nomi della tabella sfruttando la funzioneclean_names{janitor}Sfruttando un’opportuna operazione di
jointra le tabelledati_provinceecodici_regioniaggiungi alla tabelladati_provincei nomi delle regioni eliminando dalla tabelladati_provincei corrispondenti codici numericiSfruttando un’opportuna operazione di
jointra le tabelledati_provinceecodici_areaaggiungi alla tabelladati_provincei nomi delle aree eliminando dalla tabelladati_provincei corrispondenti codici numericiAggiungi alla tabella
dati_provinceuna nuova colonnaclassi_redditocategorizzando la variabileredditoin tre classi di uguale ampiezza usando le seguenti etichette per le tre classi:basso,medioealto
Parte 2: Creazione di un output tabellare
Calcola una tabella di frequenza doppia utilizzando sulle righe la zona geografica e sulle colonne le classi di reddito sfruttando la funzione
tabyl{janitor}, riportando nelle celle la frequenza percentuale rispetto al gran totaleCalcola la tabella di frequenza doppia utilizzando sulle righe la zona geografica e sulle colonne le classi di reddito sfruttando la funzione
tabyl{janitor}, riportando i profili riga (frequenze percentuali rispetto ai totali di riga)Crea una tabella con la stessa struttura di quelle ottenute ai due punti precedenti (zona geografica sulle righe e classi di reddito sulle colonne) riportando nelle celle il numero medio di abitanti delle province in corrispondenza dei vari incroci
Calcola prima il numero medio di abitanti in corrispondenza dei vari sottogruppi ottenuti incrociando la zona geografica e le classi di reddito e poi sfrutta un’opportuna operazione di pivoting per ottenere la tabella nel formato richiesto
Parte 3: grafici interattivi e grafici animati
- Sfruttando il package
plotlycostruisci un diagramma di dispersione dove ciascun punto è associato ai valori medi del reddito (asse orizzontale) e dei consumi (asse verticale) usando un differente colore per i punti in base all’area geografica in cui si trova la regione e usando come etichetta interattiva del punto “Regione:nome della regione)”
Per costruire la tabella di input sfrutta
group_byinsieme amutateper calcolare i valori medi delle due variabili reddito e consumi e la funzioneslice(1)per estrarre dalla tabella risultante un valore da ciascuna regioneConsulta la guida di
plotly(sezioneCustomize Hover Textper personalizzare l’etichetta come richiesto)
Costruisci lo stesso grafico chiesto al punto precedente sfruttando questa volta il package
ggiraphSfrutta il package
gganimatee la tabellagapminderdisponibile nel packagegapminderper costruire il seguente grafico animato:
Sfrutta il package
gganimatee la tabellagapminderdisponibile nel packagegapminderper costruire il seguente grafico animato:
Parte 4: 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 datata
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 - 16 | 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↩︎