📖 1. Cos'è R?
R è un linguaggio di programmazione open source e un ambiente software per il calcolo statistico e la visualizzazione grafica. È stato creato nel 1993 dai professori Ross Ihaka e Robert Gentleman presso l'Università di Auckland come strumento didattico per l'insegnamento della statistica introduttiva.
Il nome "R" deriva da due fonti: è il successore del linguaggio S (sviluppato nei Bell Labs) e rappresenta la prima lettera dei nomi dei suoi creatori, Ross e Robert.
Storia e Sviluppo
Il Comprehensive R Archive Network (CRAN) è stato fondato nel 1997 da Kurt Hornik e Fritz Leisch per ospitare il codice sorgente di R, i file eseguibili, la documentazione e i pacchetti creati dagli utenti. Inizialmente CRAN aveva 3 mirror e 12 pacchetti. A dicembre 2022, conta 103 mirror e oltre 18.976 pacchetti!
Il R Core Team è stato formato nel 1997 per continuare lo sviluppo del linguaggio e oggi R è utilizzato da milioni di utenti in tutto il mondo per analisi statistiche, data science, machine learning e ricerca scientifica.
⚡ 2. Punti di Forza e Debolezze di R
Punti di Forza
- Vasta gamma di funzioni: R offre migliaia di pacchetti che permettono di eseguire praticamente qualsiasi tipo di analisi statistica, dal più semplice al più complesso.
- Open source: R è completamente gratuito e il codice sorgente è accessibile a tutti, permettendo trasparenza e personalizzazione.
- Comunità attiva: R ha una comunità vasta e attiva di utenti e sviluppatori che forniscono supporto, risorse, tutorial e documentazione costantemente aggiornata.
- Altamente personalizzabile: Puoi creare strumenti di analisi e visualizzazione completamente personalizzati per le tue esigenze specifiche.
- Visualizzazioni eccellenti: Pacchetti come ggplot2 permettono di creare grafici professionali e pubblicabili con poche righe di codice.
Debolezze
- Interfaccia poco intuitiva: L'interfaccia utente può risultare meno user-friendly rispetto ad altri software di analisi dati come SAS o SPSS, specialmente per chi è alle prime armi.
- Performance: Essendo un linguaggio interpretato, R può essere più lento nell'esecuzione di alcune operazioni rispetto ad altri linguaggi di programmazione compilati.
- Gestione memoria: La gestione della memoria di R può essere inefficiente con dataset molto grandi (multi-gigabyte), richiedendo ottimizzazioni specifiche.
- Documentazione variabile: Mentre molti pacchetti hanno documentazione eccellente, alcuni possono avere documentazione incompleta o poco chiara.
🎯 3. Usi Tipici di R
R è uno strumento estremamente versatile utilizzato in molteplici ambiti professionali e di ricerca:
- Analisi Statistica: Regressione lineare e non lineare, test di ipotesi, ANOVA, analisi multivariata e molto altro.
- Visualizzazione Dati: Creazione di grafici professionali, dashboard interattive e infografiche.
- Machine Learning: Clustering, classificazione, predizione, reti neurali e deep learning.
- Data Manipulation: Pulizia, trasformazione e pre-processing di dati complessi.
- Analisi Serie Temporali: Particolarmente utile in economia e finanza per previsioni e analisi di trend.
- Web Scraping: Estrazione automatica di dati da pagine web.
- Simulazione e Ottimizzazione: Simulazioni Monte Carlo, ottimizzazione numerica.
- Ricerca Scientifica: Bioinformatica, genomica, ricerca medica, analisi cliniche.
📦 4. Pacchetti R
Un pacchetto R è una collezione di funzioni, dataset e documentazione che estende le funzionalità base del linguaggio. I pacchetti sono il cuore dell'ecosistema R e permettono di accedere a strumenti specializzati per ogni tipo di analisi.
Pacchetti Fondamentali
- ggplot2: Per la visualizzazione dei dati con una grammatica elegante e flessibile.
- dplyr: Per la manipolazione dei dati (filtri, raggruppamenti, riassunti).
- tidyr: Per la pulizia e la ristrutturazione dei dati.
- caret: Per il machine learning e la creazione di modelli predittivi.
- lubridate: Per lavorare con date e orari.
- stringr: Per manipolazione di stringhe e pattern matching.
- data.table: Per manipolazione e aggregazione veloce di grandi dataset.
- shiny: Per creare applicazioni web interattive.
Installazione e Utilizzo dei Pacchetti
Per installare e utilizzare un pacchetto in R, usa i seguenti comandi:
Repository di Pacchetti
CRAN (Comprehensive R Archive Network)
CRAN è il repository principale per i pacchetti R. I pacchetti su CRAN sono contribuiti da utenti e sviluppatori R di tutto il mondo e subiscono un rigoroso processo di revisione prima dell'accettazione, garantendo qualità e affidabilità.
Bioconductor
Bioconductor è una collezione di pacchetti R specificamente progettati per l'analisi e l'interpretazione di dati genomici. Include strumenti per analisi di espressione genica, sequenziamento DNA, dati microarray e molto altro.
GitHub
Anche se non è specificamente progettato per pacchetti R, GitHub è una piattaforma popolare per condividere e collaborare su codice, inclusi pacchetti R in fase di sviluppo o sperimentali.
💻 5. Download e Installazione di R
Seguire questi semplici passaggi per installare R sul proprio computer:
- Andare sul sito ufficiale di R: https://www.r-project.org/
- Cliccare sul link "CRAN" nella barra laterale sinistra.
- Scegliere un mirror CRAN vicino alla propria posizione (ad esempio, Padova per l'Italia).
- Cliccare sul link per scaricare la versione appropriata per il proprio sistema operativo (Windows, Mac, o Linux).
- Seguire le istruzioni di installazione specifiche per il sistema operativo.
- Una volta installato, lanciare R facendo doppio click sull'icona R sul desktop, oppure digitando "R" nel terminale/prompt dei comandi.
R è disponibile anche nei repository di molte distribuzioni Linux. Puoi controllare il sistema di gestione pacchetti della tua distribuzione prima di scaricare da CRAN.
🎨 6. RStudio - L'IDE per R
RStudio è un Integrated Development Environment (IDE) per R e Python. Include una console, un editor di testo con syntax highlighting che supporta l'esecuzione diretta del codice, e strumenti per plotting, history, debugging e gestione del workspace.
Perché Usare RStudio?
- Interfaccia intuitiva e ben organizzata
- Editor di codice avanzato con autocompletamento
- Visualizzazione immediata di grafici e risultati
- Gestione integrata di progetti
- Supporto per R Markdown e creazione di report
- Debugging e profiling integrati
- Integrazione con Git per version control
Download e Installazione di RStudio
- Assicurarsi di aver installato R prima di installare RStudio.
- Andare sul sito ufficiale: posit.co/download/rstudio-desktop/
- Scaricare la versione appropriata per il proprio sistema operativo.
- Seguire le istruzioni di installazione.
- Lanciare RStudio facendo doppio click sull'icona di RStudio.
Interfaccia di RStudio
L'interfaccia di RStudio è divisa in quattro pannelli principali:
- Editor (in alto a sinistra): Dove scrivi e modifichi i tuoi script .R e file .Rmd.
- Console (in basso a sinistra): Dove puoi interagire con R digitando comandi e vedendo il loro output. Qui appare anche la cronologia dei comandi.
- Environment/History (in alto a destra): Mostra le variabili e gli oggetti nel tuo ambiente R corrente, insieme alla cronologia dei comandi.
- Files/Plots/Packages/Help (in basso a destra): Permette di navigare tra i file del progetto, visualizzare grafici, gestire pacchetti e accedere alla documentazione.
Personalizzazione di RStudio
RStudio offre molte opzioni di personalizzazione per migliorare l'esperienza di programmazione:
- Tema Editor: Vai su "Tools" → "Global Options" → "Appearance" per cambiare il tema (ad esempio, passare al dark mode).
- Dimensione Font: Nella stessa sezione, puoi regolare "Editor font size".
- Layout Pannelli: Personalizza la disposizione dei pannelli in "Pane Layout".
- Tasti Rapidi: Impara i tasti rapidi per velocizzare il lavoro (Ctrl+Enter per eseguire, Ctrl+Shift+M per il pipe %>%, ecc.).
📝 7. I Tuoi Primi Comandi in R
Puoi eseguire comandi direttamente nella console di R o scriverli in un file .R script.
Operazioni Matematiche Base
Dichiarazione di Variabili
In R, puoi dichiarare variabili usando gli operatori <- o =.
La convenzione più comune è usare <-.
- I nomi devono iniziare con una lettera.
- Possono contenere lettere, numeri e underscore (_).
- R è case-sensitive:
variabile≠Variabile - Evita nomi come: i, j, pi, true, false, e nomi di funzioni built-in.
- Usa nomi descrittivi:
età_studenteè meglio dix - Convenzioni comuni: snake_case, camelCase, o PascalCase
📊 8. Variabili e Strutture Dati in R
Vettori
Un vettore è una lista ordinata di elementi dello stesso tipo. È la struttura dati fondamentale in R.
Sequenze
R offre modi efficienti per creare sequenze di numeri:
Funzioni Utili per Vettori
| Funzione | Descrizione |
|---|---|
length() |
Restituisce la lunghezza del vettore |
max(), min() |
Calcola il massimo o il minimo |
sum() |
Somma tutti gli elementi |
mean() |
Calcola la media |
median() |
Calcola la mediana |
sd() |
Calcola la deviazione standard |
cumsum() |
Calcola la somma cumulativa |
sort() |
Ordina gli elementi |
Matrici
Una matrice è una struttura bidimensionale che contiene elementi dello stesso tipo, organizzati in righe e colonne.
Matrici Speciali
Operazioni con Matrici
Liste
Le liste sono strutture dati flessibili che possono contenere elementi di tipi diversi.
Data Frame
Un data frame è una struttura tabellare bidimensionale simile a una tabella di database o a un foglio Excel. È la struttura più comune per lavorare con dati in R.
Fattori
I fattori sono usati per rappresentare variabili categoriche. Sono utili per analisi statistiche e visualizzazioni.
🔄 9. Strutture di Controllo
If-Else
Ciclo For
Ciclo While
In R, quando possibile, è preferibile usare funzioni vettorizzate invece di loop espliciti,
perché sono più veloci ed efficienti. Ad esempio, invece di usare un loop per sommare elementi,
usa sum().
📈 10. Visualizzazione Dati
R è famoso per le sue capacità di visualizzazione dati. La funzione base plot() è molto
flessibile, ma esistono anche pacchetti specializzati come ggplot2 per grafici più avanzati.
Scatter Plot
Line Plot
Bar Plot
Histogram
Box Plot
Multiple Plots
Salvare Grafici
💾 11. Importare ed Esportare Dati
Salvare e Caricare Variabili R
Importare Dati CSV
Esportare Dati CSV
Importare Dati Excel
🔧 12. Funzioni in R
Le funzioni permettono di creare blocchi di codice riutilizzabili e organizzare meglio il proprio lavoro.
Creare Funzioni
Variabili Locali e Globali
È buona pratica evitare l'uso di variabili globali quando possibile. Invece, passa i dati tra funzioni usando argomenti e valori di ritorno. Questo rende il codice più modulare, più facile da testare e da debuggare.
🐛 13. Debugging
Il debugging è fondamentale per identificare e correggere errori nel codice.
Tecniche di Debugging
📦 14. Introduzione a dplyr
dplyr è uno dei pacchetti più importanti per la manipolazione dei dati in R. Offre una sintassi intuitiva e funzioni veloci per lavorare con data frame.
Installazione e Caricamento
Pipe Operator %>%
L'operatore pipe (%>%) è il cuore di dplyr. Permette di concatenare operazioni
in modo leggibile, passando il risultato di una funzione alla successiva.
Funzioni Principali di dplyr
| Funzione | Descrizione |
|---|---|
%>% |
Operatore pipe per concatenare operazioni |
filter() |
Filtrare righe in base a condizioni |
select() |
Selezionare colonne |
mutate() |
Creare o modificare colonne |
arrange() |
Ordinare righe |
group_by() |
Raggruppare dati |
summarise() |
Calcolare statistiche riassuntive |
Esempi Pratici
- Leggibilità: Il codice è più facile da leggere e capire
- Velocità: Ottimizzato per operazioni su grandi dataset
- Consistenza: Sintassi uniforme per tutte le operazioni
- Concatenazione: Facile concatenare operazioni complesse
🎓 15. Progetti e Best Practices
Lavorare con Progetti R
I progetti R in RStudio aiutano a organizzare il lavoro, mantenendo tutti i file, dati e output relativi a un progetto specifico in un unico posto.
mio_progetto/ ├── mio_progetto.Rproj ├── data/ │ ├── raw/ # Dati grezzi (non modificare) │ └── processed/ # Dati elaborati ├── scripts/ │ ├── 01_import.R # Script import dati │ ├── 02_clean.R # Script pulizia dati │ └── 03_analyze.R # Script analisi ├── plots/ # Grafici salvati ├── results/ # Risultati analisi └── README.md # Documentazione progetto
Best Practices
- Commenta il codice: Spiega il "perché", non solo il "cosa"
- Usa nomi descrittivi:
media_voti_studentiinvece dim - Dividi in funzioni: Ogni funzione dovrebbe fare una cosa sola
- Usa il version control: Git per tracciare le modifiche
- Non ripeterti (DRY): Crea funzioni per codice ripetuto
- Testa il codice: Verifica che funzioni con diversi input
- Documenta: Scrivi README e help per le funzioni
- Usa pacchetti standard: tidyverse, data.table, ggplot2
Ottenere Aiuto
- R Documentation: rdocumentation.org
- Stack Overflow: stackoverflow.com/r
- RStudio Community: community.rstudio.com
- R-bloggers: r-bloggers.com
- Cheat Sheets: rstudio.com/cheatsheets
✅ 16. Esercizi Pratici
- Creare un vettore con i numeri da 1 a 10 usando l'operatore
: - Creare lo stesso vettore usando
seq() - Creare una matrice 4x2 di zeri chiamata
mymat - Sostituire la seconda riga con un vettore contenente 3 e 6
- Creare un vettore
xcon 20 punti equidistanti tra -π e +π - Creare un vettore
yche èsin(x) - Creare una matrice 4x6 di interi casuali tra -5 e 5
- Calcolare il valore assoluto di ogni elemento
- Caricare il dataset
sunspot.yearusandodata("sunspot.year") - Creare un vettore
yearcon gli anni corrispondenti - Creare un data frame con year e sunspots
- Fare un line plot di sunspots vs. year
- Aggiungere punti rossi al grafico usando
points() - Aggiungere il titolo "Sunspots per Anno"
- Creare un layout con 3 pannelli (line plot, barplot, histogram)
- Salvare il grafico come .png
- Salvare il data frame come .csv
- Creare una funzione che converte cm in pollici (2.54 cm = 1 inch)
- Creare dati di temperatura per diversi orari del giorno
- Fare un plot con simboli '+'
- Regolare il range dell'asse x per migliorare la visualizzazione
- Salvare il grafico come PDF con dimensioni 10cm x 10cm
- Caricare il dataset iris:
data("iris") - Esplorare il dataset: dimensioni, struttura, statistiche
- Filtrare solo la specie setosa usando dplyr
- Ordinare per lunghezza del sepalo
- Mostrare le prime righe con
head() - Trovare la lunghezza minima del sepalo per setosa
- Per ogni specie, calcolare la lunghezza minima del sepalo
🎉 17. Conclusione
- ✅ Cos'è R e la sua storia
- ✅ Punti di forza e debolezze di R
- ✅ Download e installazione di R e RStudio
- ✅ Interfaccia e personalizzazione di RStudio
- ✅ Operazioni matematiche e dichiarazione variabili
- ✅ Strutture dati: vettori, matrici, liste, data frame, fattori
- ✅ Operazioni con vettori e matrici
- ✅ Strutture di controllo: if, for, while
- ✅ Visualizzazione dati con plot, barplot, histogram, boxplot
- ✅ Import/export di dati (CSV, Excel, RData)
- ✅ Creazione e utilizzo di funzioni
- ✅ Tecniche di debugging
- ✅ Introduzione a dplyr per manipolazione dati
- ✅ Best practices e organizzazione progetti
Buono studio e buon coding con R! 🚀📈