Programmazione in R: Fondamenti, Strutture Dati e Calcolo Statistico

Classificato in Informatica

Scritto il in italiano con una dimensione di 6,19 KB

Cos'è il Linguaggio R?

R è un linguaggio nato per l’elaborazione dei dati. È un software open-source, il che significa che il suo codice sorgente viene distribuito liberamente, costituendo un sistema aperto a chiunque voglia aumentarne le possibilità di utilizzo e di calcolo. Inoltre, R, costituendo un vero e proprio ambiente di programmazione, permette un’elevatissima flessibilità nell’implementazione di funzioni di calcolo e di rappresentazione grafica statistica. In questo ambiente è possibile creare o importare algoritmi che permettono di effettuare una serie di operazioni per raggiungere specifici obiettivi informatici.

Interfaccia Grafica e Gestione Pacchetti

Interfaccia Grafica

L’interfaccia grafica di R è molto essenziale: dopo aver scaricato e installato il software, l'utente si trova davanti a una finestra contenente 7 menù (File, Edit, View, Misc, Packages, Windows, Help) con pochi comandi, alcuni pulsanti standard (“Open script”, ”Load workspace”, “Save workspace”) e una finestra di dialogo denominata “R console”, dove è possibile digitare i comandi direttamente da tastiera.

Gestione dei Pacchetti

  • Installazione pacchetti: install.packages('mywork')
  • Caricamento pacchetti: library(mywork)

Strutture Dati in R

Vettori

È possibile creare variabili contenenti più valori (ovvero vettori) utilizzando il comando c():

> vett <- c(1, 2, 3, 4)
> vett
[1] 1 2 3 4

Matrici

La matrice è una struttura generica ben diversa dal dataframe; per la sua creazione vanno specificati i numeri di riga e di colonna. Per costruire una matrice partendo da un vettore si usa il comando matrix():

  • Esempio base: > matrix(1:6)
  • Specificando le righe: > matrix(1:6, nrow=2)

Data-frame

I data-frame sono strutture di dati simili alle matrici, ma con la proprietà aggiuntiva di permettere l'unione di vettori di diverso tipo (numerici, testuali, ecc.). È l'oggetto base per la gestione dei dataset: a <- data.frame(a1, a2, a3).

Liste

La lista è un contenitore di oggetti, dove ciascun oggetto può essere un dataframe diverso o un'altra struttura. È possibile accedere ai diversi "slot" del contenitore utilizzando le doppie parentesi quadre: lista[[1]].

Funzioni di Iterazione: Apply, Lapply e Sapply

Apply

È un comando estremamente utile per eseguire operazioni sulle righe o sulle colonne di una matrice o di un data-frame. Ad esempio, il seguente comando calcola il valore massimo per ogni colonna: > apply(nazioni.dati, 2, max).

Lapply e Sapply

Queste funzioni si applicano a liste (spesso risultato di altre funzioni) e vettori. Si consideri una lista composta da un vettore numerico e uno logico:

> x <- list(numeri=9:1, logico=sample(c(TRUE, FALSE), 10, replace=TRUE))

  • lapply(x, range): restituisce una lista.
  • sapply(x, range): restituisce una matrice, rendendo l'output più leggibile.
  • unlist(lapply(x, mean)): restituisce un vettore semplice.

Strutture di Controllo

Ciclo While

Oltre al comando for(), si può usare while() per applicare ripetutamente delle operazioni. La sintassi while(espressione) valuta l'espressione e, finché essa risulta vera (TRUE), il comando continua a eseguire l'operazione definita.

Switch

Il comando switch() permette di passare da un punto all’altro di una funzione, scegliendo tra più alternative. È simile al comando if(), ma ottimizzato per gestire diverse condizioni: switch(expr, expr2, expr3, ...).

Esempi Comparativi e Casi d'Uso

Confronto Ciclo While: Octave vs R

Ciclo in Octave:
x=1; i=3; while (i<=10) z=x+i; i++; endwhile

Ciclo in R:
i <- 3; x <- 1; while (i <= 10) { z <- x + i; print(z); i <- i + 1 }

Simulazione Lancio Dadi

Per simulare la media di 100 lanci di un dado in R: > mean(sample(1:6, 100, replace = TRUE)).

R vs VBA: Vantaggi e Svantaggi

  • Vantaggi di R: È multipiattaforma e non limitato all'ecosistema Microsoft. È sviluppato specificamente per la statistica, offrendo librerie e ottimizzazioni superiori per grandi moli di dati.
  • Vantaggi di VBA: Molto facile da apprendere per chi usa Office. Permette di creare Macro registrando azioni e di integrare widget o bottoni direttamente nei fogli di calcolo, mentre R richiede solitamente l'esecuzione di script esterni.

Funzioni Personalizzate e Replicabilità

Creazione di una Funzione

Le funzioni permettono di automatizzare compiti ripetitivi. Ecco un esempio per calcolare la media di un range:

calcola_media <- function(n) {
  risultato <- mean(n)
  return(risultato)
}
calcola_media(1:20)

Il Concetto di Replicabilità

Per replicabilità si intende la capacità di un progetto di rappresentare un prototipo di successo che possa essere riprodotto su scala più ampia. È fondamentale nella gestione dell'errore poiché permette di proporre lo stesso modello in contesti diversi, favorendo l'emulazione e la verifica dei risultati.

Generazione di Numeri Casuali

In R, le funzioni che generano numeri casuali iniziano tipicamente con la lettera r:

  • runif(): genera numeri dalla distribuzione uniforme.
  • rnorm(): genera numeri dalla distribuzione normale.
  • sample(1:10, 3): estrae tre numeri casuali tra 1 e 10.
  • sample(seq(0, 1, 0.01), 5): estrae cinque numeri casuali tra 0 e 1 con incremento di 0.01.

Voci correlate: