Creare una funzione con R – basi di programmazione R

Home/R/Creare una funzione con R – basi di programmazione R

Creare una funzione con R – basi di programmazione R

In questa lezione vediamo come creare una funzione con il linguaggio R: oggetti e funzioni sono il cuore del linguaggio di programmazione R. Se gli oggetti sono gli elementi su cui effettuiamo delle azioni, le funzioni sono le azioni stesse che applichiamo ai nostri oggetti. Le funzioni sono serie di istruzioni create per risolvere problemi ben definiti e particolareggiati. Possono essere paragonate alle macro di Excel.

Una funzione esegue un’azione su un oggetto e restituisce un dato in base all’operazione svolta. Nei post precedenti abbiamo già avuto a che fare con alcune funzioni, da quelle che creano un vettore, come c(), a quelle che creano una matrice, come matrix(), a quelle che importano un file, come read.csv(). Le funzioni che abbiamo visto finora sono solo una minima parte delle funzioni disponibili su R, nella versione base e nei vari pacchetti. Molte funzioni infatti fanno parte per default di R, altre invece fanno parte dei pacchetti aggiuntivi che possono essere installati su R e necessariamente richiamati ogni volta che in una sessione vogliamo cominciare a utilizzarli.

Potremmo però trovarci a dover scrivere delle funzioni personalizzate, sia perché non previste da pacchetti, sia per inserire una serie di istruzioni in un solo comando invece di ripetere una lista di istruzioni uguali per più oggetti. La costruzione di una funzione avrà più o meno questa struttura:

la.mia.funzione <-  function {

istruzione
}

Come si può vedere nella casella di testo, la formula che permette di creare una funzione è “function”. La funzione è un oggetto che in questo caso prende il nome “la mia.funzione”, mentre tra parentesi tonde troviamo gli argomenti a cui viene applicata, e tra le parentesi graffe le istruzioni che la nostra funzione dovrà eseguire.

Ad esempio, poniamo di voler costruire una funzione che sommi un uno a un qualsiasi oggetto a cui viene applicata.

funzione.somma1 <- function (x) {
1+x
}

# applichiamo la funzione al numero tra le parentesi
funzione.somma1(20)
[1] 21

“x” in questo caso si riferisce a un oggetto generico e non a un preciso oggetto già creato. Nell’esempio qua sopra applichiamo la funzione a un numero semplice, in questo caso 20, ma possiamo applicare la funzione a un qualsiasi oggetto creato in R.

Come possiamo vedere dal codice qua sopra, finché la funzione non è conclusa, sulla console di R non ci apparirà il segno del prompt ‘>’, ma il segno ‘+’, a significare che la funzione non è ancora completa

Possiamo creare delle funzioni anche utilizzando gli operatori binari e le istruzioni condizionali che abbiamo visto precedentemente, ad esempio:

ricetta <- function(aggiungi){
 if (aggiungi < 4) {
print ("Aggiungi un altro uovo")
}else{
print ("Basta così!")
}
}

ricetta(3)
[1] "Aggiungi un altro uovo”

ricetta(12)
[1] "Basta così!"

In questo post abbiamo visto come creare una funzione con il linguaggio di programmazione R: nei prossimi post vediamo alcuni altri elementi di base di R, ad esempio come estrarre dei sottoinsiemi di dati,   importare dei dati su R, e utilizzare le strutture di controllo. Se questi post non ti bastano e cerchi qualcosa di più approfondito, puoi dare un’occhiata anche al corso base di R.

About the Author:

Leave A Comment