lettura facile

La definizione delle funzioni in R

Scrivere funzioni in R è un'abilità fondamentale per automatizzare e semplificare le operazioni di analisi dei dati.

Cosa sono le funzioni? Le funzioni sono blocchi di codice che eseguono un compito specifico e possono essere riutilizzate.

Prima di tutto, devi capire bene cosa vuoi che la tua funzione faccia. Specifica l'input necessario e il tipo di output desiderato.

La definizione della funzione

Una funzione in R si definisce con la seguente sintassi:

  1. miaFunzione <- function(argomento1, argomento2, ...) {
  2. # Corpo della funzione
  3. }

Gli argomenti sono i valori che passi alla funzione. Puoi avere un numero qualsiasi di argomenti.

Puoi anche assegnare valori predefiniti (di default) agli argomenti, che verranno usati se non vengono forniti valori specifici.

  1. miaFunzione <- function(a = 1, b = 2) {
  2. # Corpo della funzione
  3. }

Il corpo della funzione contiene il codice che esegue il compito. Qui puoi usare cicli, condizioni, altre funzioni, ecc.

All'interno del corpo della funzione puoi inserire l'istruzione return() per indicare quale risultato, detto valore di ritorno, deve restituire la funzione.

  1. miaFunzione <- function(a, b) {
  2. risultato <- a + b
  3. return(risultato)
  4. }

Se non specifichi l'istruzone return( ) il linguaggio R restituisce l'ultimo valore calcolato nella funzione.

La chiamata della funzione

Una volta scritta la tua funzione, puoi chiamarla da qualsiasi punto del programma usando questa sintassi:

  1. miaFunzione(a, b)

Ovviamente, il numero dei parametri deve essere lo stesso della funzione che hai appena definito. In questo caso sono due, i parametri "a" e "b".

Testala con diversi input per assicurarti che funzioni come previsto.

È una buona pratica commentare il codice e scrivere una breve descrizione all'inizio della funzione, spiegando cosa fa, gli argomenti richiesti e il tipo di output. Ricorda che per commentare il codice nel linguaggio C devi iniziare il commento con il carattere #.

Un esempio

Supponiamo di voler scrivere una funzione che calcola la media di due numeri:

  1. calcolaMedia <- function(num1, num2) {
  2. # Divide la somma per 2 per trovare la media
  3. media <- (num1 + num2) / 2
  4. # Restituisce il risultato
  5. return(media)
  6. }

Questa funzione prende due numeri come input e restituisce la loro media.

Puoi richiamare la funzione da diversi punti del programma passandogli valori diversi. In questo modo eviti di dover riscrivere la stessa subroutine più volte.

Ecco il programma completo con tre chiamate alla stessa funzione

  1. calcolaMedia <- function(num1, num2) {
  2. # Divide la somma per 2 per trovare la media
  3. media <- (num1 + num2) / 2
  4. # Restituisce il risultato
  5. return(media)
  6. }
  7.  
  8. # prima chiamata
  9. risultato1 <- calcolaMedia(4, 8)
  10. print(risultato1)
  11.  
  12. # seconda chiamata
  13. risultato2 <- calcolaMedia(5.5, 7.3)
  14. print(risultato2)
  15.  
  16. # terza chiamata
  17. risultato3 <- calcolaMedia(-10, 20)
  18. print(risultato3)

La prima chiamata passa alla funzione due valori interi 4 e 8.

La funzione restituisce il valore medio 6

6

La seconda chiamata alla funzione passa due valori decimali 5.5 e 7.3 come argomenti.

Anche in questo caso la funzione restituisce la media, circa 6.4

6.4

La terza e ultima chiamata passa i numeri -10 e 20 come argomenti.

La funzione calcola la media dei numeri e restituisce il risultato 5.

5

Come puoi vedere, scrivere funzioni nel linguaggio R ti permette di rendere il tuo codice più organizzato, riutilizzabile e facile da leggere.

Le funzioni con gli array come argomento

Puoi passare come argomento della funzione anche un array di valori.

Ecco un esempio pratico.

  • # Definizione della funzione
  • calcolaMedia <- function(numeri) {
  •    somma <- sum(numeri)
  •    lunghezza <- length(numeri)
  •    media <- somma / lunghezza
  •    return(media)
  • }
  •  
  • # Test della funzione con un vettore di numeri
  • numeriTest <- c(1, 2, 3, 4, 5)
  • mediaCalcolata <- calcolaMedia(numeriTest)
  •  
  • # Stampa del risultato
  • print(mediaCalcolata)

In questo esempio, la funzione "calcolaMedia" prende un vettore di numeri, calcola la loro somma e poi li divide per il numero di elementi nel vettore. Il risultato è la media.

Quando la funzione viene invocata con l'array (1,2,3,4,5) dovrebbe restituire 3, che è la media di questi numeri.

3

In questo modo puoi calcolare la media anche di più numeri.

Qualche consiglio pratico prima di concludere il tutorial. Quando scegli il nome degli argomenti, utilizza dei nomi chiari e descrittivi per rendere il codice più leggibile e controlla che gli argomenti passati alla funziona siano validi, per evitare problemi come la divisione per zero.  Inoltre, usa i commenti per spiegare parti del codice che potrebbero non essere immediatamente chiare a chi lo legge.

 

Ricorda, la pratica è fondamentale, quindi esercitati e continua a scrivere e migliorare le tue funzioni.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin