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 join tra 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.
Descrizione del dataset

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:

    # PUNTO 1 ------------------------------------------------
  • 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

Nota

Ricordati di utilizzare i commenti per le risposte aperte.

Parte 1: Importazione, pulizia e preparazione dei dati

  1. Importa il foglio Dati del file dati-citta-italiane.xlsx nell’oggetto dati_province uniformando i nomi della tabella sfruttando la funzione clean_names {janitor}

  2. Importa il foglio Codice Regioni del file dati-citta-italiane.xlsx nell’oggetto codici_regioni uniformando i nomi della tabella sfruttando la funzione clean_names {janitor}

  3. Importa il foglio Codice Area del file dati-citta-italiane.xlsx nell’oggetto codici_area uniformando i nomi della tabella sfruttando la funzione clean_names {janitor}

  4. Sfruttando un’opportuna operazione di join tra le tabelle dati_province e codici_regioni aggiungi alla tabella dati_province i nomi delle regioni eliminando dalla tabella dati_province i corrispondenti codici numerici

  5. Sfruttando un’opportuna operazione di join tra le tabelle dati_province e codici_area aggiungi alla tabella dati_province i nomi delle aree eliminando dalla tabella dati_province i corrispondenti codici numerici

  6. Aggiungi alla tabella dati_province una nuova colonna classi_reddito categorizzando la variabile reddito in tre classi di uguale ampiezza usando le seguenti etichette per le tre classi: basso, medio e alto

Parte 2: Creazione di un output tabellare

  1. 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 totale

  2. Calcola 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)

  3. 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

Suggerimento

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

  1. Sfruttando il package plotly costruisci 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)”
Suggerimento
  • Per costruire la tabella di input sfrutta group_by insieme a mutate per calcolare i valori medi delle due variabili reddito e consumi e la funzione slice(1) per estrarre dalla tabella risultante un valore da ciascuna regione

  • Consulta la guida di plotly (sezione Customize Hover Text per personalizzare l’etichetta come richiesto)

  1. Costruisci lo stesso grafico chiesto al punto precedente sfruttando questa volta il package ggiraph

  2. Sfrutta il package gganimate e la tabella gapminder disponibile nel package gapminder per costruire il seguente grafico animato:

  3. Sfrutta il package gganimate e la tabella gapminder disponibile nel package gapminder per 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

  1. Importa la tabella pew_table_4.csv2 (tabella 4 del paper) e scrivi il codice utile a riportarla in formato tidy, come descritto nel paper

  2. Importa la tabella billboard_table_7.csv (tabella 7 del paper) e scrivi il codice utile a riportarla in formato tidy, come descritto nel paper

  3. Importa 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

  1. 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↩︎