R è un lin­guag­gio di pro­gram­ma­zio­ne uti­liz­za­to in molti ambiti dell’analisi dei dati e della sta­ti­sti­ca. Tra i prin­ci­pa­li concetti della pro­gram­ma­zio­ne in R vi sono le funzioni, che aiutano a rendere il codice più chiaro e modulare.

A cosa servono le funzioni in R?

Le funzioni in R servono a strut­tu­ra­re, or­ga­niz­za­re e riu­ti­liz­za­re il codice. Sono par­ti­co­lar­men­te utili per eseguire analisi complesse, per vaste ope­ra­zio­ni di ela­bo­ra­zio­ne di dati o per analisi su misura. La scrittura di funzioni in R offre una serie di vantaggi:

  • Astra­zio­ne: le funzioni in R per­met­to­no di in­cap­su­la­re processi o calcoli complessi in una singola in­ter­fac­cia di facile com­pren­sio­ne. In questo modo si facilita la ma­nu­ten­zio­ne e la lettura del codice.
  • Riu­ti­liz­za­bi­li­tà: le funzioni R con­sen­to­no di eseguire ri­pe­tu­ta­men­te un de­ter­mi­na­to blocco di codice senza doverlo ri­scri­ve­re ogni volta. Così facendo si risparmia tempo e si riduce la tendenza agli errori.
  • Mo­du­la­ri­tà: le funzioni R per­met­to­no di sud­di­vi­de­re un progetto di grandi di­men­sio­ni in piccole parti più gestibili.

La sintassi delle funzioni in R

La sintassi delle funzioni in R è coerente e segue un modello chiaro. Una funzione in R è co­sti­tui­ta da diversi com­po­nen­ti prin­ci­pa­li:

  • Nome della funzione: indica so­li­ta­men­te il compito svolto dalla funzione.
  • Argomenti: gli argomenti sono valori o variabili che decidi di assegnare alla funzione e che vengono elaborati dalla funzione stessa. Una funzione può accettare un numero di argomenti a piacere (e anche nessuno). Inoltre, nelle funzioni R è anche possibile uti­liz­za­re dei valori come argomenti.
  • Corpo della funzione: il corpo della funzione contiene il codice che viene eseguito all’interno della funzione ed è racchiuso fra parentesi graffe. Questo codice può accedere agli argomenti ed ela­bo­rar­li.
  • Valore re­sti­tui­to: la maggior parte delle funzioni in R re­sti­tui­sce un valore che rap­pre­sen­ta il risultato del calcolo per mezzo di return(). Questo valore re­sti­tui­to può essere usato per uti­liz­za­re il risultato della funzione in altre parti del codice.

Il semplice esempio che segue mostra una funzione R per la somma di due numeri:

my_add <- function(a, b) {
    result <- a + b
    return(result)
}
R

In questo esempio, my_add è il nome della funzione, a e b sono gli argomenti, il corpo della funzione esegue l’addizione e return(result) re­sti­tui­sce il risultato. Inoltre, puoi notare che la de­fi­ni­zio­ne della funzione R è in­tro­dot­ta dalla parola chiave function.

Una funzione può contenere anche valori pre­de­fi­ni­ti per gli argomenti ai quali è possibile ricorrere se non viene assegnato nessun argomento. Con i valori pre­de­fi­ni­ti, la funzione R pre­ce­den­te si pre­sen­te­reb­be così:

my_add <- function(a = 1, b = 2) {
    result <- a + b
    return(result)
}
R

A questo punto, ri­chia­man­do la funzione senza aver assegnato alcun argomento, viene re­sti­tui­to il valore 3.

Consiglio

Se desideri mettere online il tuo progetto in R, IONOS ti offre la pos­si­bi­li­tà di no­leg­gia­re il tuo spazio web personale con spazio suf­fi­cien­te per progetti web di ogni tipo.

Funzioni pre­in­stal­la­te in R

R dispone di una vasta raccolta di funzioni pre­in­stal­la­te, note anche come comandi R, che puoi uti­liz­za­re per diversi scopi. Queste funzioni sono di­spo­ni­bi­li e uti­liz­za­bi­li in R senza doverle definire in pre­ce­den­za. Inoltre, puoi so­sti­tui­re alcune funzioni con degli operatori in R: ad esempio, nel caso dell’addizione, puoi usare l’operatore +.

Se non hai appena iniziato a studiare la pro­gram­ma­zio­ne, di sicuro hai già in­con­tra­to alcune delle funzioni pre­de­fi­ni­te qui descritte in altri linguaggi di pro­gram­ma­zio­ne:

  • mean(): calcola la media dei numeri
  • plot(): una funzione di plotting per la rea­liz­za­zio­ne di grafici e diagrammi in R
  • read.csv(): legge e carica i dati da un file CSV
  • toupper(): converte in lettere maiuscole tutti i caratteri di una stringa in R
  • sum(): calcola la somma dei numeri
  • print(): emette i valori sulla console

L’esempio seguente mostra l’utilizzo della funzione pre­in­stal­la­ta mean() in R. Nella variabile result, alla fine del codice si trova la media di tutti i numeri del vettore in R numbers.

numbers <- c(2, 4, 6, 8, 10)
result <- mean(numeri)
R

Scrittura di funzioni R per­so­na­liz­za­te

La creazione di funzioni in R per­so­na­liz­za­te è una parte fon­da­men­ta­le della pro­gram­ma­zio­ne con questo lin­guag­gio e ti permette di creare funzioni su misura per le tue esigenze. A tal fine devi sem­pli­ce­men­te ri­spet­ta­re la sintassi di R e pensare agli argomenti che servono alla tua funzione.

Ad esempio, una semplice funzione R per­so­na­liz­za­ta che re­sti­tui­sce il valore di un numero potrebbe pre­sen­tar­si nel modo seguente:

my_abs <- function(x) {
    if (x < 0) {
        return(-x)
    } else {
        return(x)
    }
}
R

Nell’esempio qui sopra, la funzione accetta un argomento x. Nel corpo della funzione si utilizza quindi un’istru­zio­ne if di R per ve­ri­fi­ca­re se si tratta di un numero positivo o negativo. Il valore re­sti­tui­to viene quindi adattato di con­se­guen­za.

Utilizzo delle funzioni in R

Dopo aver creato una funzione, puoi uti­liz­zar­la nel tuo codice R ri­chia­man­do il nome della funzione e as­se­gnan­do gli argomenti necessari. L’utilizzo di funzioni per­so­na­liz­za­te è analogo all’uso di funzioni R pre­de­fi­ni­te.

Questo esempio mostra l’utilizzo della funzione my_abs appena creata:

result <- my_abs(-5)
print(result)
R

Eseguendo il codice dell’esempio noterai che sullo schermo compare un 5. Il calcolo del valore assoluto per mezzo della funzione porta quindi al risultato corretto.

Vai al menu prin­ci­pa­le