\(\mathcal{R\,lab}\) | Statistical Computing con R

Questa pagina contiene uno schema degli argomenti, materiale e compiti per il semestre. La pagina verrà aggiornata settimanalmente dopo le due lezioni in aula.

SETTIMANA DATA ARGOMENTO MATERIALE LETTURE QUIZ HW
1 ven 25 set Lab 1: Introduzione al corso | Introduzione ad R, RStudio e Positron | Caratteristiche del linguaggio R: linguaggio di tipo espressione, linguaggio funzionale, linguaggio orientato agli oggetti | Struttura di un’espressione | Regole per la nomenclatura di un oggetto | Sintassi di chiamata di una funzione: passaggio degli argomenti per nome, per posizione e mista | Tipologie di oggetti R: oggetti atomici (vettori, matrici e array) | Modalità e lunghezza di un oggetto | Oggetti di tipo numeric e di tipo character | Attributi di un oggetto | Cancellazione degli oggetti dal workspace 🖥️ Alcune slide introduttive
💻 Introduzione ad R
💻 Oggetti atomici



mar 29 set Consegna su MS-Teams: HW-01
📖 Introduction to R
Cap. 1, 2, 3, 5 (par. 5.1, 5.2, 5.3, 5.4, 5.8 e 5.9)

📗 R for Data Science
Introduction, Cap. 2
❓Quiz #01 ✍️ HW-01
2 mer 30 set Lab 2: Oggetti non atomici: oggetti “tabellari” (data.frame e tibble) e liste | Liste senza nomi e liste con nomi | Script R: creazione, regole di stile per la formattazione, commenti e sezioni | Puntamento agli elementi di un oggetto non atomico: operatore dollaro, uso della doppia parentesi quadra e della singola parentesi quadra | Valori riservati: NULL, TRUE / FALSE, Inf, NaN e NA | Gestione del workspace: funzioni save.image, save e load 💻 Oggetti non atomici



ven 2 ott Operatori logici: not, or e and | Operatori relazionali | Operatori aritmetici | Puntamento di un oggetto non atomico: indici, nomi, valori booleani e puntamento sfruttando gli operatori relazionali | Progetti RStudio | Missing value | L’operatore pipe nativo e l’operatore pipe del package magrittr | Logica del lavoro per progetti in RStudio | Cenni agli environment di R: regole per la risoluzione dei nomi lungo la search.path: uso dell’interfaccia di RStudio in alternativa alla funzione search() | L’operatore :: per l’accesso ad oggetti in punti specifici della search.path o in ambienti/package non caricati in memoria 💻 Puntamento e dintorni



mar 6 ott Consegna su MS-Teams: HW-02
📖 Introduction to R
Cap. 5, 6

📗 R for Data Science
Cap. 4, 6, 8 e 27 (par. 27.1, 27.1 e 27.3)

🗒️ Regole per la scrittura di buon codice (versione compatta)
🗒️ Regole per la scrittura di buon codice (versione estesa)
❓Quiz #02 ✍️ HW-02
3 mer 7 ott Lab. 4: Importazione di file dei dati in R: la funzione read.table {base} e le sue varianti, le funzioni read_delim {readr} e sue varianti | Il package readxl per l’importazione di file in formato MS-Excel | Pulizia dei nomi di una tabella sfruttando la funzione clean_names{janitor} | I verbi di dplyr per due tabelle: mutating joins (inner, left, right e full), filtering joins (semi_join e anti_join) ed operazioni su insiemi (intersect, union , union_all, setdiff, symdiff e setequal) | Factor e ordered factor | Conversione di una variabile in tabella in formato factor usando l’operatore $ | Conversione di una variabile in tabella usando il verbo mutate {dplyr} 💻 Miscellanea: missing value e factor

🖥️ Verbi a due tabelle



ven 9 ott Introduzione al package dplyr e alla grammatica per la manipolazione dei dati: la funzione mutate | Trasformazione di una variabile (log, exp, sqrt, ecc.) | Calcolo di una colonna a partire da operazioni algebriche su due colonne | Ricodifica di una variabile sfruttando if_else | La grammatica per la data manipulation: mutate, recode_values, replace_values, case_when, if_else, cut e sue varianti (cut_interval, cut_width e cut_number), relocate, arrange, rename | Utilizzo dei prompt di AI per la generazione dei comandi R 💻 La grammatica per la data manipulation: dplyr e dintorni
(trattati in aula: verbi mutate, arrange, rename e relocate, il resto studio autonomo)



mar 13 ott Consegna su MS-Teams: HW-03
📖 Introduction to R
Cap. 4, 7

📗 R for Data Science
Cap. 20, 19, 3

📖 Documentazione package dplyr
🗒️ Introduction to dplyr
🗒️ Two-table verbs
🗒️ Recoding columns and replacing values
🗒️ A general vectorised if-else (case_when e replace_when)
📖 Documentazione package janitor
🗒️ Overview of janitor functions
❓Quiz #03 ✍️ HW-03
4 mer 14 ott Lab. 6: Esercitazione in gruppi (la gestione di un sistema bibliotecario): importazione, pulizia e codifica dei dati, incrocio di dati da fonti diverse, manipolazione e sintesi dei dati 🗒️ Esercitazione: un sistema bibliotecario cittadino
💻 La grammatica per la data manipulation: dplyr e dintorni



ven 16 ott La grammatica per la data manipulation: il package dplyr: filter, select, summarise e group_by | Utilizzo di mutate insieme group_by: imputazione di valori mancanti usando un singolo valore per colonna o usando valori differenziati per gruppi di unità | Manipolazione di tabelle: il package tidyr e le operazioni di pivoting | Cenni alle operazioni di rectangling e nesting | Confronto tra le funzioni di R base e le funzioni di tidyverse per la manipolazione dei dati 🖥️ Pivoting e dintorni
💻️ Pivoting (tidyr)



mar 20 ott Consegna su MS-Teams: HW-04 (22 ottobre)
📗 R for Data Science
Cap. 3 e 5

📖 Documentazione package dplyr
🗒️ Introduction to dplyr
🗒️ Grouped data
🗒️ Column-wise operations

🗒️ dplyr <-> base R
📖 Documentazione package tidyr
🗒️ Pivoting
🗒️ Rectangling
🗒️ Nested data

📖 Articolo “Tidy Data” (Hadley Wickham, 2014) - Journal of Statistical Software
❓Quiz #04 ✍️ HW-04
[5] mer 21 ott Lab. 8: Presentazione dei risultati dell’esercitazione in piccoli gruppi | Introduzione all’ambiente Positron | Creazione di tabelle di frequenze univariate e bivariate: le funzioni table e tabyl | Funzioni relative alle distribuzioni di probabilità e funzioni di densità: r_, d_, p_ e q_ | Numeri pseudo-casuali: la funzione set.seed | Funzion per la grafica di base | La grammatica per la grafica: il package ggplot2 | La logica dei layer di ggplot2 | Principali grafici con ggplot2 | Estensioni del package ggplot2 💻 tabyl e dintorni
💻 Funzioni per i modelli di variabili casuali



ven 23 ott Package per la grafica interattiva: plotly, ggiraph, highcharter e dygraphs



mar 27 ott Consegna su MS-Teams: HW-05 🖥️ Grafica in ggplot2
🖥️ Grafica interattiva ed animazioni


[✍️ HW-05]
[6] mer 28 ott Lab. 10: Utilizzo dell’animazione sui grafici: gganimate



ven 30 ott Il sistema Quarto per la reportistica in R | Literate programming | Il linguaggio Markdown | Utilizzo di chunk di codice | Cenni ai progetti Quarto: website, blog e book



mar 3 nov Consegna su MS-Teams: HW-06 🖥️ Quarto: un sistema di pubblicazione scientifica e tecnica open source
🖥️ Quarto lezione #01: scarica il progetto RStudio in formato compresso
🖥️ Quarto lezione #02: scarica il progetto RStudio in formato compresso


[✍️ HW-06]
[7] mer 4 nov Lab. 12: Package per la reportistica tabellare: knitr, kableExtra, DT, gt, gtExtra, formattable | Creazione di un report che sfrutta codice esterno: la funzione read_chunk {knitr}



ven 6 nov Quarto Dashboard in R. Struttura di una dashboard: layout, pages, tabsets, cards, sidebar, valueBox. Cambio del tema grafico di una dashboard.



mar 10 nov Consegna su MS-Teams: HW-07 🖥️ Quarto: scarica il progetto con le dashboard in formato compresso

[✍️ HW-07]
[8] mer 11 nov Lab. 14: Creazione di una dashboard sul dataset gapminder. Report Quarto parametrici. Il package quarto e la funzione quarto_render.



ven 13 nov Creazione di una funzione | Strutture di selezione ed iterazione | Cenni alle funzioni della famiglia apply



mar 17 nov Consegna su MS-Teams: HW-08 🖥️ Quarto: scarica il progetto con OJS per l’interattività
🖥️ Quarto: scarica il progetto con il codice per i report parametrici
🖥️ Funzioni in R
🖥️ Approfondimenti sulla creazione di funzioni in R


[✍️ HW-08]
[9] mer 18 nov Lab. 16: Interattività nei file Quarto: breve introduzione al linguaggio OJS (Obvservable Java Script) per aggiungere controlli interfaccia utente. Utilizzo di un LLM (ChatGPT, Copilot, Claude, Gemini, DeepSeek, Kimi, ecc.) per generare codice OJS. Creazione di una funzione in R: oggetto function. Struttura di selezione: il costrutto if e if - else.



ven 20 nov Strumenti di debug in R. Programmazione funzionale: il package purrr: funzioni map e walk, map2 e walk2, pmap e pwalk.



mar 24 nov Consegna su MS-Teams: HW-09 🖥️ Programmazione funzionale
🖥️ Approfondimenti sulla programmazione funzionale


[✍️ HW-09]
[10] mer 25 nov Lab 18: Funzioni per la gestione di dati in formato testuale: il package stringr e le espressioni regolari.



ven 27 nov Un’applicazione di analisi di dati testuali: il package tidytext. Gestione delle date in R. Cenni al webscraping: il package rvest.



ven 4 dic Consegna su MS-Teams: HW-10 🖥️ Funzioni stringhe e date: scarica il progetto RStudio in formato compresso
🖥️ Analisi testuale “I Promessi Sposi”: scarica il progetto RStudio in formato compresso


[✍️ HW-10]