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