Cos'è R?
R è un linguaggio di programmazione nato per un solo compito: lavorare con i dati. Statistica, analisi dei dati e visualizzazione non sono cose che aggiungi a R con delle librerie: sono il linguaggio. Medie, modelli, grafici e distribuzioni di probabilità sono inclusi di serie, e la sintassi è modellata sulla domanda che chi lavora con i dati si fa davvero: "ecco una colonna di numeri, dimmi qualcosa su di essa".
Questa specializzazione è tutta la personalità di R. Un linguaggio generalista come Java ti chiede di costruire partendo dai mattoni di base. R ti dà un test t in una sola riga.
Ecco R che fa quello per cui è nato, eseguilo:
Tre statistiche, tre righe, nessuna importazione. c() costruisce un vettore di valori, e mean(), sd() e max() sono integrate nel linguaggio. È l'esperienza di R in miniatura.
Una breve storia
R deriva da S, un linguaggio statistico sviluppato ai Bell Labs negli anni '70. A metà degli anni '90, due statistici dell'Università di Auckland, Ross Ihaka e Robert Gentleman, crearono un'implementazione libera e open source delle idee di S e la chiamarono R, giocando sia sulle iniziali dei loro nomi sia sulla S da cui discendeva.
R 1.0 è uscito nel 2000, e da allora il linguaggio è mantenuto dal R Core Team. Dato che era gratuito mentre i suoi antenati commerciali non lo erano, R si è diffuso prima nelle università e nei laboratori di ricerca, e quel DNA accademico si vede ancora: quando degli statistici inventano un nuovo metodo, di solito il primo posto in cui compare è un pacchetto R che lo implementa.
A cosa serve R
- Statistica e analisi dei dati. L'uso principale. Statistiche descrittive, test di ipotesi, regressione, serie storiche: tutti cittadini di prima classe.
- Visualizzazione dei dati. In R base un grafico richiede una sola chiamata di funzione, e il pacchetto
ggplot2è considerato da molti la migliore libreria di grafici in qualsiasi linguaggio. - Data science. La raccolta di pacchetti "tidyverse" (
dplyr,tidyr,readr) rende insolitamente piacevole pulire e rimodellare dati disordinati. - Bioinformatica. Il progetto Bioconductor, con migliaia di pacchetti R per la genomica, fa di R il linguaggio predefinito in buona parte della biologia.
- Università e ricerca. Economia, psicologia, epidemiologia, ecologia: se un campo pubblica articoli con i p-value, probabilmente i suoi dottorandi scrivono in R.
- Reportistica. R Markdown e Quarto trasformano il codice di analisi in report, presentazioni e dashboard curati.
Perché R piace
Tutto è un vettore. Le operazioni di R si applicano in modo naturale a intere raccolte di valori in una volta: prices * 1.2 aumenta ogni prezzo del 20%, senza bisogno di cicli. Quando questo concetto ti entra in testa, il codice per i dati si accorcia enormemente. Lo vedrai ovunque quando arriverai ai vettori.
La statistica è integrata. Generazione di numeri casuali, distribuzioni, test statistici e modelli lineari fanno parte di R base. Nella maggior parte dei linguaggi sono dipendenze esterne; in R ci sono e basta.
CRAN. Il Comprehensive R Archive Network ospita oltre 20.000 pacchetti curati, e ognuno supera dei controlli automatici prima della pubblicazione. Qualunque metodo di nicchia usi il tuo campo, qualcuno l'ha già messo in un pacchetto.
Grafici che rispettano il tuo tempo. hist(scores) ti dà un istogramma. Una chiamata. L'analisi esplorativa, cioè guardare i dati, correggere, guardare di nuovo, è ciò per cui R è ottimizzato.
R contro Python: la versione onesta
È la domanda che fa ogni principiante, quindi ecco la risposta senza tifoserie.
Python è un linguaggio generalista molto bravo con i dati. Vince quando il lavoro sui dati è una parte di un sistema più grande: un'applicazione web, una pipeline di ML in produzione, del codice di automazione. Ha più offerte di lavoro associate, e un solo linguaggio copre più terreno.
R è un linguaggio per i dati eccellente nella statistica. Vince quando il lavoro è l'analisi: esplorare dataset, stimare modelli statistici, produrre grafici e report di qualità da pubblicazione. Il suo ecosistema statistico è più profondo, e i metodi più all'avanguardia arrivano prima in R.
Nessuno dei due è "migliore": puntano a baricentri diversi. Se lavori nella ricerca, nella biostatistica o in ruoli molto legati all'analisi, inizia con R. Se punti all'ingegneria del software con un'impronta sui dati, inizia con Python. E il segreto che le discussioni online saltano: il secondo linguaggio richiede una frazione dello sforzo una volta imparato il primo, e moltissimi professionisti usano entrambi nella stessa settimana.
Provalo subito
Per iniziare non devi installare nulla: i blocchi di codice di queste pagine sono eseguibili. Ecco un assaggio un po' più grande: simulare dei lanci di dado e riassumerli.
sample() simula 100 lanci di un dado e table() conta quante volte è uscita ogni faccia: una tabella di frequenze con una sola chiamata. Cambia 100 in 10000 ed eseguilo di nuovo; la media si avvicina a 3.5, esattamente come dice la probabilità. Quel ciclo, domanda, codice, risposta, ritocco, è la sensazione di lavorare in R.
Quando vorrai eseguire R sul tuo computer, il passo successivo è installare R e RStudio.
Cosa ti porti a casa
- R è un linguaggio gratuito e open source, costruito apposta per la statistica, l'analisi dei dati e la visualizzazione.
- Discende da S ed è stato creato da Ross Ihaka e Robert Gentleman a metà degli anni '90; R 1.0 è arrivato nel 2000.
- I suoi punti di forza: operazioni vettorizzate, statistica integrata, gli oltre 20.000 pacchetti di CRAN e grafici di prima qualità.
- R contro Python non è una guerra: R è più profondo per la statistica, Python è più ampio per l'ingegneria, e molte persone usano entrambi.
Prossimo passo: installare R (e RStudio) sul tuo computer.
Domande frequenti
A cosa serve la programmazione in R?
R si usa per la statistica, l'analisi dei dati e la visualizzazione dei dati. Domina nella ricerca accademica, nella biostatistica e nella bioinformatica, nell'epidemiologia e in ogni campo in cui il lavoro è 'analizza questo dataset e produci grafici e modelli'. È meno diffuso per creare app o siti web: non è stato progettato per quello.
R è difficile da imparare?
Per lavorare con i dati, R è uno dei linguaggi più facili con cui iniziare. Caricare un dataset, calcolare statistiche descrittive e disegnare un grafico richiedono una riga ciascuno. Quello che mette in difficoltà più avanti è la flessibilità di R, con più modi di fare la stessa cosa, ed è per questo che imparare presto le convenzioni moderne ripaga.
Meglio imparare R o Python?
Se il tuo lavoro parte dalla statistica (ricerca, biostatistica, econometria, reportistica), con R arrivi più lontano e più in fretta. Se vuoi un solo linguaggio generalista per i dati più script, backend web o ingegneria del machine learning, scegli Python. Molti professionisti dei dati finiscono per usarli entrambi: i concetti si trasferiscono.
R è gratuito?
Sì. R è gratuito e open source, distribuito con licenza GPL. Lo scarichi da CRAN senza costi, e anche le migliaia di pacchetti su CRAN sono gratuiti.