# Funzioni R: nozioni fondamentali e utilizzo

R è un linguaggio di programmazione utilizzato in molti ambiti dell’analisi dei dati e della statistica. Tra i principali concetti della [programmazione in R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/linguaggio-di-programmazione-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 strutturare, organizzare e riutilizzare il codice. Sono particolarmente utili per eseguire analisi complesse, per vaste operazioni di elaborazione di dati o per analisi su misura. La scrittura di funzioni in R offre una serie di vantaggi:

- **Astrazione**: le funzioni in R permettono di incapsulare processi o calcoli complessi in una singola interfaccia di facile comprensione. In questo modo si facilita la manutenzione e la lettura del codice.
- **Riutilizzabilità**: le funzioni R consentono di eseguire ripetutamente un determinato blocco di codice senza doverlo riscrivere ogni volta. Così facendo si risparmia tempo e si riduce la tendenza agli errori.
- **Modularità**: le funzioni R permettono di suddividere un progetto di grandi dimensioni 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 è costituita da diversi componenti principali:

- **Nome della funzione**: indica solitamente 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 utilizzare 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 elaborarli.
- **Valore restituito**: la maggior parte delle funzioni in R restituisce un valore che rappresenta il risultato del calcolo per mezzo di `return()`. Questo valore restituito può essere usato per utilizzare il risultato della funzione in altre parti del codice.

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

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

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)` restituisce il risultato. Inoltre, puoi notare che la definizione della funzione R è introdotta dalla parola chiave `function`.

Una funzione può **contenere anche valori predefiniti per gli argomenti** ai quali è possibile ricorrere se non viene assegnato nessun argomento. Con i valori predefiniti, la funzione R precedente si presenterebbe così:

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

A questo punto, richiamando la funzione senza aver assegnato alcun argomento, viene restituito il valore `3`.

Consiglio Se desideri mettere online il tuo progetto in R, IONOS ti offre la possibilità di noleggiare [il tuo spazio web personale](https://www.ionos.it/hosting/spazio-web "Spazio web con IONOS") con spazio sufficiente per progetti web di ogni tipo.

## Funzioni preinstallate in R

R dispone di una **vasta raccolta di funzioni preinstallate**, note anche come [comandi R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/comandi-r/), che puoi utilizzare per diversi scopi. Queste funzioni sono disponibili e utilizzabili in R senza doverle definire in precedenza. Inoltre, puoi sostituire alcune funzioni con degli [operatori in R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/operatori-r/): ad esempio, nel caso dell’addizione, puoi usare l’operatore `+`.

Se non hai appena iniziato a [studiare la programmazione](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/imparare-a-programmare-iniziare-dalle-basi/), di sicuro hai già incontrato alcune delle funzioni predefinite qui descritte in altri linguaggi di programmazione:

- mean(): calcola la media dei numeri
- plot(): una funzione di plotting per la realizzazione 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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/stringhe-r/)
- sum(): calcola la somma dei numeri
- print(): emette i valori sulla console

L’esempio seguente mostra l’utilizzo della funzione preinstallata `mean()` in R. Nella variabile `result`, alla fine del codice si trova la media di tutti i numeri del [vettore in R](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/vettori-r/) `numbers`.

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

## Scrittura di funzioni R personalizzate

La **creazione di funzioni in R personalizzate è una parte fondamentale della programmazione** con questo linguaggio e ti permette di creare funzioni su misura per le tue esigenze. A tal fine devi semplicemente rispettare la sintassi di R e pensare agli argomenti che servono alla tua funzione.

Ad esempio, una semplice funzione R personalizzata che restituisce il valore di un numero potrebbe presentarsi nel modo seguente:

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

Nell’esempio qui sopra, la funzione accetta un argomento `x`. Nel corpo della funzione si utilizza quindi un’istruzione if di R per verificare se si tratta di un numero positivo o negativo. Il valore restituito viene quindi adattato di conseguenza.

## Utilizzo delle funzioni in R

Dopo aver creato una funzione, puoi utilizzarla nel tuo codice R **richiamando il nome della funzione e assegnando gli argomenti necessari**. L’utilizzo di funzioni personalizzate è analogo all’uso di funzioni R predefinite.

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

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

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.


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/funzioni-r/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/funzioni-r/) for AI/LLM consumption.