# PUNTO 1 ------------------------------------------------
HW 03 - La grammatica per la data manipulation
Data di consegna: lunedì 14 ottobre 2024
Introduzione
In questo compito utilizzerai i comandi utili per:
- creare nuove variabili a partire da variabili esistenti
- ricodificare una variabile
- categorizzare una variabile in gruppi
- costruire tabelle di frequenza univariate e bivariate
- selezionare un sottoinsieme di variabili
- selezionare un sottoinsieme di unità
- calcolare statistiche di sintesi sull’intero insieme e su gruppi di dati
Obiettivi di apprendimento
Lo svolgimento di questo compito ti permetterà di:
- usare R per aggiungere alla tabella nuove variabili sulla base di quelle disponibili
- usare R per codificare e categorizzare le variabili di una tabella
- creare sintesi tabellari e numeriche di un insieme di dati
Istruzioni per l’uso
- Crea un progetto associandolo ad una cartella “RLab_hw03_cognome_nome” sul tuo disco: nel mio caso il nome della cartella sarebbe: “RLab_hw03_vistocco_domenico” e copia all’interno della cartella il seguente file:
zambia_height92.csv.
Una descrizione sul contenuto del file con la corrispondente legenda delle variabili è disponibile qui
Rispondi ai vari punti salvando le risposte in un file R con il nome “hw03_cognome_nome.R”: ad esempio nel mio caso il nome del file sarebbe “hw03_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 e codifica dei dati
Importa il file “zambia_height92.csv” nell’oggetto
zambia_heightEsplora il dataset
zambia_heightusando la funzioneskim(packageskimr)Riordina le colonne del dataset posizionando all’inizio le due colonne
districteregion
Sfrutta le funzioni setNames e str_replace
- Rinomina le colonne
c_gender,c_breastfec_agesostituendochild_ac_nei tre nomi
Sfrutta la funzione names per estrarre i nomi degli oggetti, la funzione str_replace per cercare un pattern di testo e sostituirlo all’esistente, e la funzione set_names per reimpostare i nomi della tabella
Rinomina le colonne
m_agebirth,m_height,m_bmi,m_educationem_worksostituendomother_am_nei cinque nomiRicodifica la variabile
child_gendersostituendo le etichette testuali ai codici numerici (per dettagli vedi legenda del dataset)Ricodifica la variabile
mother_educationsostituendo le etichette testuali ai codici numerici (per dettagli vedi legenda del dataset)
Utilizza una variabile di tipo factor per gestire propriamente l’ordine delle modalità
Ricodifica la variabile
mother_worksostituendo le etichette testuali ai codici numerici (per dettagli vedi legenda del dataset)Ricodifica la variabile
regionsostituendo le etichette testuali ai codici numerici (per dettagli vedi legenda del dataset)Trasforma la variabile
districtin una variabile stringa aggiungendo al numero del distretto il prefisso “district nr.”
Sfrutta la funzione paste che permette di concatenare due stringhe, in combinazione con la fuzione mutate
- Ordina il dataset in senso crescente rispetto al totolo di studio della madre e, a parità di titolo di studio, in senso decrescente rispetto alla variabile
z_score
Parte 2: Creazione di nuove variabili
Aggiungi al dataset la colonna
c_age_yearscalcolando l’eta dei bambini in anni, trasformando opportunamente la colonnac_ageAggiungi al dataset la colonna
bmi_logcalcolando il logaritmo della colonnam_bmiAggiungi al dataset una variabile
bmi_eq_sizeche contiene la categorizzazione in 5 cinque classi di uguale ampiezza della variabilemother_bmi
- Sfrutta la funzione
tableper esplorare la categorizzazione ottenuta - Sfrutta la funzione
classper esplorare la tipologia di oggetto ottenuto
- Aggiungi al dataset una variabile
bmi_eq_countra che contiene la categorizzazione in 5 cinque classi di uguale frequenza della variabilemother_bmi
- Sfrutta la funzione
tableper esplorare la categorizzazione ottenuta - Sfrutta la funzione
classper esplorare la tipologia di oggetto ottenuto
- Aggiungi al dataset una variabile
bmi_pers_groupche contiene la categorizzazione della variabilemother_bminelle seguenti 5 classi:\[10, 15), \[15, 25), \[25, 35), \[35, 40)
- Sfrutta la funzione
tableper esplorare la categorizzazione ottenuta - Sfrutta la funzione
classper esplorare la tipologia di oggetto ottenuto
Parte 3: Operazioni di selezione e filtro
Salva in un oggetto
male_childi dati relativi ai soli bambini di sesso maschile presenti nel datasetSalva in un oggetto
female_workingi dati relativi alle sole bambine di sesso femminile le cui madri lavoranoSalva in un oggetto
male_working_but_all_femalei dati relativi a tutte le bambine di sesso femminile e ai soli bambini di sesso maschile le cui madri lavoranoCrea un dataset ridotto con le sole variabili di tipo numerico salvandolo nell’oggetto
var_numericheconvertendo in lettere maiuscole tutti i nomi delle variabili
Sfrutta le funzioni set_names e toupper per rispondere alla parte relativa ai nomi delle variabili
- Esegui l’operazione di centratura su tutte le variabili presenti nell’oggetto
var_numericheottenuto al punto precedente salvando il risultato nell’oggettodati_centrati
Sfrutta la funzione scale in combinazione con la funzione mutate (consulta l’help della funzione per dettagli sul funzionamento)
- Esegui l’operazione di standardizzazione su tutte le variabili numeriche presenti nell’oggetto
zambia_heightottenuto al punto precedente salvando il risultato nell’oggettodati_standardizzati
- Sfrutta la funzione
scalein combinazione con la funzionemutate(consulta l’help della funzione per dettagli sul funzionamento) - A differenza del punto precedente, rispondi qui partendo dall’oggetto
zambia_heighte non dall’oggettovar_numeriche
Parte 4: Tabelle di frequenza
- Costruisci una tabella di frequenza univariata per la variabile
mother_education
Sfrutta la funzione tabyl del pacchetto janitor
Costruisci una tabella di frequenza a doppia entrata incrociando le variabili
mother_educationemother_workriportando le frequenze assoluteCostruisci una tabella di frequenza a doppia entrata incrociando le variabili
mother_educationemother_workriportando le frequenze percentuali rispetto al gran totaleCostruisci una tabella di frequenza a doppia entrata incrociando le variabili
mother_educationemother_workriportando i profili riga (distribuzioni condizionate in frequenze percentuali della variabile in colonna)Costruisci una tabella di frequenza a doppia entrata incrociando le variabili
mother_educationemother_workriportando i profili colonna (distribuzioni condizionate in frequenze percentuali della variabile in riga)
Parte 5: Calcolo di statistiche di sintesi
Costruisci una tabella di frequenza univariata per
mother_educationsfruttando la funzionecount {dplyr}Costruisci una tabella di frequenza univariata per
mother_educationsfruttando la funzionetally {dplyr}
Sfrutta la funzione group_by per raggruppare i dati rispetto alla variabile di interesse
- Costruisci una tabella di frequenza univariata per
mother_educationsfruttando le funzionisummarise {dplyr}en {dplyr}
Sfrutta la funzione group_by per raggruppare i dati rispetto alla variabile di interesse
Costruisci una tabella di frequenza univariata per
mother_educationusando uno dei tre approcci utilizzati ai punti 28, 29 e 30 ma ordinando le modalità in senso decrescente rispetto alle corrispondenti frequenze assoluteCalcola media, mediana, scarto quadratico medio, indice di asimmetria ed indice di curtosi della variabile
z_score, sfruttando le funzioni di R base
Per l’indice di asimmetria sfrutta la funzione skeweness e per l’indice di curtosi sfrutta la funzione kurtosis, entrambe disponibili nel package moments
Calcola media, mediana, scarto quadratico medio, indice di asimmetria ed indice di curtosi della variabile
z_score, sfruttando il verbosummarisedel packagedplyrCalcola media, mediana, scarto quadratico medio, indice di asimmetria ed indice di curtosi della variabile
z_scorein corrispondenza dei vari livelli della variabilemother_education, sfruttando i verbi ditidyverseCalcola la media della variabile
z_scorein corrispondenza dei vari livelli delle variabilimother_educationemother_work, sfruttando i verbi ditidyverseCalcola le medie di tutte le variabili numeriche contenute nell’oggetto
zambia_height, sfruttando i verbi ditidyverseCalcola le medie di tutte le variabili contenute nell’oggetto
dati_centrati, sfruttando i verbi ditidyverseCalcola le medie e gli scarti quadratici medi di tutte le variabili numeriche contenute nell’oggetto
zambia_height, sfruttando i verbi ditidyverseCalcola le medie e gli scarti quadratici medi di tutte le variabili contenute nell’oggetto
dati_standardizzati, sfruttando i verbi ditidyverseSalva il contenuto dell’intero workspace su un file
analisi_dati_zambia.RDatanella directory corrente
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 - 35 | 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↩︎