Sintassi di Base in R
Il linguaggio R ha una sintassi pensata per l’analisi statistica e la manipolazione dei dati. Prima di iniziare a scrivere programmi in R, e’ fondamentale comprendere le regole di base della sua sintassi. In questa guida esploreremo tutti gli aspetti essenziali.
Assegnazione con <- e =
In R, l’operatore di assegnazione principale e’ la freccia <-. Sebbene sia possibile utilizzare anche il simbolo =, la comunita’ R preferisce fortemente l’uso di <- per distinguere l’assegnazione dai parametri delle funzioni.
# Assegnazione con <- (consigliato)
nome <- "Mario"
eta <- 30
# Assegnazione con = (funziona ma meno comune)
citta = "Roma"
# Assegnazione con freccia destra (meno usato)
"Ingegnere" -> professione
# Stampa i valori
print(nome) # [1] "Mario"
print(eta) # [1] 30
print(citta) # [1] "Roma"
print(professione) # [1] "Ingegnere"
La ragione per cui <- e’ preferito rispetto a = diventa chiara nelle chiamate a funzione. Utilizzando = all’interno di una funzione, si assegna un valore a un parametro, mentre <- crea una variabile nell’ambiente corrente.
# = assegna al parametro della funzione
mean(x = c(1, 2, 3)) # x e' un parametro, non viene creata una variabile
# <- crea una variabile nell'ambiente
mean(x <- c(1, 2, 3)) # x viene creata come variabile nell'ambiente
print(x) # [1] 1 2 3
Punto e Virgola Opzionale
In R, il punto e virgola e’ opzionale. Ogni istruzione viene generalmente scritta su una riga separata. Tuttavia, e’ possibile scrivere piu’ istruzioni sulla stessa riga separandole con un punto e virgola.
# Ogni istruzione su una riga separata (consigliato)
a <- 10
b <- 20
c <- a + b
# Piu' istruzioni sulla stessa riga (sconsigliato ma valido)
a <- 10; b <- 20; c <- a + b
print(c) # [1] 30
La pratica consigliata e’ quella di scrivere una sola istruzione per riga, per migliorare la leggibilita’ del codice.
Case Sensitivity
R e’ un linguaggio case-sensitive, il che significa che distingue tra lettere maiuscole e minuscole. Questo vale per nomi di variabili, funzioni e parole chiave.
variabile <- 10
Variabile <- 20
VARIABILE <- 30
print(variabile) # [1] 10
print(Variabile) # [1] 20
print(VARIABILE) # [1] 30
# Anche le funzioni sono case-sensitive
# print() funziona, Print() genera un errore
Regole per i Nomi delle Variabili
In R, i nomi delle variabili devono seguire alcune regole specifiche:
- Devono iniziare con una lettera o un punto: Se iniziano con un punto, il secondo carattere non puo’ essere un numero.
- Possono contenere lettere, numeri, punti e underscore: I caratteri speciali e gli spazi non sono ammessi.
- Non possono essere parole riservate: Come
if,else,for,while,function,TRUE,FALSE,NULL,NA,Inf,NaN.
# Nomi validi
nome_utente <- "Mario"
eta.utente <- 30
.valore_nascosto <- 42
contatore2 <- 0
nomeCompleto <- "Mario Rossi"
# Nomi NON validi (generano errore)
# 2contatore <- 0 # Non puo' iniziare con un numero
# nome-utente <- 10 # Il trattino non e' ammesso
# for <- 5 # 'for' e' una parola riservata
Le convenzioni di stile piu’ comuni in R sono il snake_case (es. nome_utente) e il punto come separatore (es. nome.utente). Il camelCase viene utilizzato meno frequentemente.
Indentazione
R non utilizza l’indentazione per definire blocchi di codice come Python. I blocchi sono delimitati da parentesi graffe {}. Tuttavia, l’indentazione e’ fondamentale per la leggibilita’.
# Indentazione corretta per leggibilita'
if (eta >= 18) {
print("Maggiorenne")
if (eta >= 65) {
print("Pensionato")
}
} else {
print("Minorenne")
}
# Funzione con indentazione
calcola_media <- function(vettore) {
somma <- sum(vettore)
n <- length(vettore)
risultato <- somma / n
return(risultato)
}
media <- calcola_media(c(10, 20, 30))
print(media) # [1] 20
Lo standard consigliato e’ di utilizzare 2 spazi per livello di indentazione, come raccomandato dalla guida di stile di Tidyverse.
Esecuzione Interattiva vs Script
R puo’ essere utilizzato in due modalita’: interattiva e tramite script.
Modalita’ Interattiva (Console)
Nella console di R, ogni istruzione viene eseguita immediatamente e il risultato viene stampato automaticamente senza necessita’ di usare print().
# Nella console R
> 2 + 3
[1] 5
> x <- 10
> x
[1] 10
> sqrt(144)
[1] 12
Modalita’ Script (File .R)
Quando si scrive codice in un file .R, il codice viene eseguito in sequenza e i risultati vengono stampati solo se esplicitamente richiesto con print() o cat().
# File: analisi.R
dati <- c(23, 45, 12, 67, 34)
media <- mean(dati)
deviazione <- sd(dati)
cat("Media:", media, "\n") # Media: 36.2
cat("Deviazione standard:", deviazione, "\n") # Deviazione standard: 20.7605
Per eseguire uno script da console si utilizza il comando source():
source("analisi.R")
Commenti
In R, i commenti iniziano con il simbolo #. Tutto cio’ che segue il # su quella riga viene ignorato dall’interprete. R non supporta commenti multilinea nativamente, quindi ogni riga di commento deve iniziare con #.
# Questo e' un commento su una riga
x <- 42 # Commento alla fine di un'istruzione
# Per scrivere commenti su piu' righe
# bisogna usare il simbolo #
# all'inizio di ogni riga
Conclusioni
La sintassi di R e’ progettata per essere flessibile e adatta all’analisi dei dati. L’operatore di assegnazione <- e’ uno degli elementi piu’ distintivi del linguaggio. Comprendere le regole per i nomi delle variabili, la case sensitivity e la differenza tra esecuzione interattiva e script e’ essenziale per iniziare a programmare efficacemente in R. Nel prossimo articolo esploreremo in dettaglio le variabili e i diversi operatori di assegnazione.