HW 09 - programmazione funzionale
Data di consegna: lunedì 05 gennaio 2026
Introduzione
In questo compito utilizzerai i comandi utili per:
- effettuare iterazioni sfruttando la logica della programmazione funzionale
Obiettivi di apprendimento
Lo svolgimento di questo compito ti permetterà di:
- usare R per effettuare iterazioni sfruttando i comandi della famiglia
map - usare R per effettuare iterazioni sfruttando i comandi della famiglia
walk
Istruzioni per l’uso
Crea un progetto associandolo ad una cartella “RLab_hw09_cognome_nome” sul tuo disco: nel mio caso il nome della cartella sarebbe: “RLab_hw09_vistocco_domenico”.
Utilizza i commenti nei file
.Re il testo statico nei file.qmdper rispondere alle domande in cui viene chiesta un’interpretazione da parte tuaAssicurati che sia il report che lo script siano correttamente funzionanti: aprendo il tuo file di progetto sul mio PC devo essere in grado di provare i file
.Re di compilare (Render) i file.qmdGli script e i report vengono valutati sia in base alla correttezza del codice che in base alla qualità (stile utilizzato per rendere gli script e i report leggibili ed ordinati).
Esercizi
Ricordati di utilizzare i commenti per le risposte aperte nei file .R e il testo statico nei file .qmd
Parte 1: Iterazione sfruttando le funzioni della famiglia map {purrr}
Sfrutta una funzione della famiglia
map {purrr}per creare una listalst_zscorecontenenti 10 campioni di 100 numeri casuali estratti da una normale standardizzataSfrutta una funzione della famiglia
map {purrr}per creare un vettore con le medie dei 10 campioni calcolati al punto precedenteSfrutta una funzione della famiglia
map {purrr}per creare una tabellatbl_zscorecon 10 colonne, dove ogni colonna contiene un campione casuale di 100 numeri estratti da una normale standardSfrutta una funzione della famiglia
map {purrr}per creare un vettore con le medie dei 10 campioni calcolati al punto precedenteCrea sul workspace un oggetto
medie = c(10, 20, 30, 40, 50)e sfrutta una funzione della famigliamap {purrr}per creare una listalst_normalidove ogni elemento contiene un campione di 100 numeri casuali di una v.c. normale per ciascuna delle cinque medie usando sempre il valore 2 per lo scarto quadratico medio.Ripeti il punto precedente sfruttando una funzione della famiglia
map {purrr}ma organizza i risultati in una tabellatbl_normali_unocon 5 colonne, una per ciascun campione generato.Crea sul workspace un oggetto
sqm_uno = c(1, 2, 3, 4, 5)e sfrutta una funzione della famigliamap {purrr}per creare una listalst_normali_duedove ogni elemento contiene un campione di 100 numeri casuali di una v.c. normale con medie e varianze date dalle coppie di uguale posizione dei due vettorimedieesqm_uno, ovvero: (10, 1), (20, 2), (30, 3), (40, 4) e (50, 5).Ripeti il punto precedente sfruttando una funzione della famiglia
map {purrr}ma organizza i risultati in una tabellatbl_normali_duecon 5 colonne, una per ciascun campione generato.Crea sul workspace due oggetti
n = c(100, 200)esqm_due = c(10, 20, 30)e sfrutta una funzione della famigliamap {purrr}per creare una listalst_normali_trecon numeri casuali da una variabile casuale normale per ciascuna combinazione dei valori din,medieesqm_due.
Sfrutta la funzione expand_grid {tidyr} per costruire la griglia delle combinazioni di valori di n, medie e sqm_due e poi sfrutta una funzione della famiglia map {purrr} per generare i campioni
Parte 2: Iterazione sfruttando le funzioni della famiglia walk {purrr}
Sfrutta una funzione della famiglia
walk {purrr}per produrre un istogramma per ciascun campione casuale della listalst_zscoreSfrutta una funzione della famiglia
walk {purrr}per produrre un istogramma per ciascun campione casuale della tabellatbl_zscoreSfrutta una funzione della famiglia
walk {purrr}per salvare ciascun campione casuale della listalst_normaliin un filecsvusando come nome dei file:campione-1.csv,campione-2.csv, …Sfrutta una funzione della famiglia
walk {purrr}per salvare ciascun campione casuale della listalst_normali_trein un filecsvusando come nome dei file la strutturacampione-n_X-media_Y-sqm_Z.csv, doveXè il valore din(numero elementi del campione),Yè il valore dimedie(media usata per generare il campione) eZil valori disqm_due(scarto quadratico medio usato per generare il campione)
Usa i valori 0 ed 1 come default per gli argomento mu e sigma
- Crea un file
Rper rispondere ai quesiti usando i commenti per indicare il numero del quesito cui il codice fa riferimento.
Consegna
Per inviare la tua soluzione:
- Salva i 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 - 15 | 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↩︎