\(\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 | Introduzione all’ambiente Positron | La grammatica per la data manipulation: il package dplyr: filter, select, summarise e group_by | Creazione di tabelle di frequenze univariate e bivariate: le funzioni table e tabyl |
💻 La grammatica per la data manipulation: dplyr e dintorni💻 tabyl e dintorni |
|||
| ven 16 ott | 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)💻 Funzioni per i modelli di variabili casuali |
||||
| mar 20 ott | Consegna su MS-Teams: HW-04 | 📗 R for Data Science Cap. 2 e 19 🗒️ Grouped data 🗒️ Column-wise operations 🗒️ dplyr <-> base R🗒️ tabyls: a tidy, fully-featured approach to counting things 📖 Documentazione package tidyr🗒️ Pivoting 🗒️ Rectangling 🗒️ Nested data 📖 Articolo “Tidy Data” (Hadley Wickham, 2014) - Journal of Statistical Software |
[✍️ HW-04] | |||
| [5] | mer 21 ott | Lab. 8: La grammatica per la grafica: il package ggplot2 | La logica dei layer di ggplot2 | Principali grafici con ggplot2 | Estensioni del package ggplot2 |
||||
| 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 |
📗 R for Data Science Cap. 1, 9, 10 e 11 🖥️ The R graph gallery 📖 Documentazione ufficiale ggplot2💻️ Libro ggplot2💻️ Estensioni ggplot2🗒️ Documentazione package patchwork🗒️ Documentazione package ggstatsplot🗒️ Documentazione package ggpubr🗒️ Documentazione package ggeasy |
[✍️ 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 |
📗 R for Data Science Cap. 28 e 29 📖 Quarto: the official guide 🖥️ Tutorial: Hello Quarto 💻️ Tutorial: Computations 💻️ Tutorial: Authoring 🗒️ Documentazione package kableExtra🗒️ Documentazione package gt🗒️ Documentazione package gtExtras🗒️ Documentazione package formattable |
[✍️ 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 | 📖 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 💻️ Tutorial: Parameterized reporting in R using Quarto 💻️ Tutorial: Parameterized reporting with Quarto, R |
[✍️ 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 |
📖 Introduction to R - Cap. 10 📗 R for Data Science Cap. 25, 26 e 27 📖 Interactive Dashboards 🗒️ Blog su Quarto - Fun with OJS 🖥️ Learn Observable Workshop Video tutorial su Observable JavaScript[OPZIONALI] 🖥️ 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 |
[✍️ 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 |
📖 Advanced R - Functional programming. Introduction 📖 Advanced R - Functional programming. Functionals 🗒️ Documentazione package purrr🖥️ Tutorial: purrr | Hadley Wichkam | Posit 🗒️ purrr tutorial💻️ Tutorial: How to purrr 💻️ Tutorial: The purrr package map functions in the Tidyverse; Learn R 🗒️ Documentazione package furrr |
[✍️ 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 |
📗 R for Data Science Cap. 14 e 17 🗒️ Documentazione package lubridate🖥️ Tutorial: Lubridate - how to manipulate date and time data in R 🖥️ Date & Time Data with lubridate |
[✍️ HW-10] |