Skip to main content

\(\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)



gio 22 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 | 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 💻 tabyl e dintorni
💻 Funzioni per i modelli di variabili casuali



ven 23 ott Una panoramica della grafica statistica | I portali The R Graph Gallery e DataToViz | Funzioni per la grafica di base | Utilizzo di un LLM per rifinire un grafico | Utilizzo di un LLM per riprodurre un grafico a partire da un’immagine 🖥️ La grafica di base in R


gio 29 ott Consegna su MS-Teams: HW-05
📖 Introduction to R
Cap. 8, 12

🖥️ The R graph gallery
🖥️ Data Viz Project
🖥️ From Data to Viz
❓Quiz #05 ✍️ HW-05
6 mer 28 ott Lab. 10: La grammatica per la grafica: il package ggplot2 | La logica dei layer di ggplot2 | Principali grafici con ggplot2 🖥️ La logica di ggplot2
🗒️ Esercitazione: ggplot2
🖥️ Grafica in ggplot2



ven 30 ott Estensioni del package ggplot2: il portale ggplot2 extensions | Package per la grafica interattiva: plotly, ggiraph, highcharter e dygraphs | Utilizzo dell’animazione sui grafici: il package gganimate 🖥️ Grafica interattiva ed animazioni
🖥️ Uno script R sul package gganimate
🖥️ Un tutorial sul package gganimate



gio 5 nov Consegna su MS-Teams: HW-06
📗 R for Data Science
Cap. 1, 9, 10 e 11

📖 Documentazione ufficiale ggplot2
💻️ Libro ggplot2

💻️ Estensioni ggplot2
🗒️ Documentazione package patchwork
🗒️ Documentazione package ggstatsplot
🗒️ Documentazione package ggpubr
🗒️ Documentazione package ggeasy
🗒️ Documentazione package ggeasy
❓Quiz #06 ✍️ HW-06
7 mer 4 nov Lab. 12: Il sistema Quarto per la reportistica in R | Literate programming | Il linguaggio Markdown e il dialetto Quarto Markdown | Anatomia di un documento Quarto | Il funzionamento di Quarto: il rendering | Le regole essenziali del linguaggio Markdown | Blocchi speciali: i fency div | Riferimenti incrociati, bibliografia, didascalia di figure e tabelle | Utilizzo di chunk di codice in modalità inline e in modalità display | Sintassi e principali opzioni della sezione YAML | Un report statico in formato html, pdf utilizzando Typst e docx 🖥️ Il sistema Quarto
🖥️ Il sistema Quarto - file di esempio
🗒️ Esercitazione:Quarto
🖥️ Quarto: un sistema di pubblicazione scientifica e tecnica open source
🖥️ Quarto add-in #01: scarica un primo progetto RStudio in formato compresso
🖥️ Quarto add-in #02: scarica un secondo progetto RStudio in formato compresso



ven 6 nov 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 | Report Quarto parametrici | Il package quarto e la funzione quarto_render | Prima introduzione alle funzioni map e walk del package purrr per automatizzare la creazione di report sfruttando i report parametrici 🖥️ Quarto: scarica il progetto con OJS per l’interattività
🖥️ Quarto: scarica il progetto con il codice per i report parametrici



gio 12 nov Consegna su MS-Teams: HW-07
📗 R for Data Science
Cap. 28 e 29

📖 Quarto: the official guide
📖 Quarto: the practical guide
🖥️ Tutorial: Hello Quarto
💻️ Tutorial: Computations
💻️ Tutorial: Authoring

💻️ Tutorial: Parameterized reporting in R using Quarto
💻️ Tutorial: Parameterized reporting with Quarto, R

Risorse su OJS - OPZIONALI
🗒️ Blog su Quarto - Fun with OJS
🖥️ Learn Observable Workshop

Video tutorial su Observable JavaScript
🖥️ Allison Horst - Observable Plot for Fast Interactive Data Visualizations in JavaScript

🖥️ Session 1: Arrays, objects, & arrow functions – Intro to data wrangling & analysis in JavaScript
🖥️ Session 2: Map, filter, and Arquero – Introduction to data wrangling & analysis in JavaScript
🖥️ Session 3: Summary statistics, groups & rollups – Intro to data wrangling & analysis in JavaScript

🖥️ Session 1 — Data science workflows in JavaScript
🖥️ Session 2 — Data science workflows in JavaScript
❓Quiz #07 ✍️ HW-07
[8] mer 11 nov Lab. 14: Creazione di un report che sfrutta codice esterno: la funzione read_chunk {knitr} | Introduzione all’ambiente Positron | Progetti Quarto: website, blog e book | Creazione e pubblicazione di un blog sfruttando github pages o netfliy | Package per la reportistica tabellare: knitr, kableExtra, DT, gt, gtExtra, formattable 🖥️ Quarto: scarica il progetto con le dashboard in formato compresso


ven 13 nov Quarto Dashboard in R. Struttura di una dashboard: layout, pages, tabsets, cards, sidebar, valueBox. Cambio del tema grafico di una dashboard | Creazione di una dashboard sul dataset gapminder | Creazione di una funzione | Strutture di selezione ed iterazione | Cenni alle funzioni della famiglia apply 🖥️ Funzioni in R
🖥️ Approfondimenti sulla creazione di funzioni in R



gio 19 nov Consegna su MS-Teams: HW-08
🗒️ Documentazione package kableExtra
🗒️ Documentazione package gt
🗒️ Documentazione package gtExtras
🗒️ Documentazione package formattable
📖 Quarto dashboards
📖 Dashboard Layout
📖 Dashboard data display
📖 Dashboard Input Layout
📖 Dashboard theming
📖 Dashboard parameters

🖥️ Tutorial: Quarto Dashboards 1: Hello, Dashboards! | Mine Çetinkaya-Rundel | Posit
💻️ Tutorial: Quarto Dashboards 2: Components | Mine Çetinkaya-Rundel | Posit
💻️ Tutorial: Quarto Dashboards 3: Theming and Styling | Mine Çetinkaya-Rundel | Posit

🖥️ Tutorial: Quarto Dashboards 1: Hello, Dashboards! | Mine Çetinkaya-Rundel | Posit
💻️ Tutorial: Quarto Dashboards 2: Components | Mine Çetinkaya-Rundel | Posit

[✍️ HW-08]
[9] mer 18 nov Lab. 16: 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.



gio 26 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]