Come utilizzare la funzione map() in r (con esempi)


La funzione map() del pacchetto purrr in R può essere utilizzata per applicare una funzione a ciascun elemento di un vettore o di una lista e restituire una lista di conseguenza.

Questa funzione utilizza la seguente sintassi di base:

mappa(.x, .f)

Oro:

  • .x : un vettore o un elenco
  • .f : una funzione

Gli esempi seguenti mostrano come utilizzare questa funzione in diversi scenari.

Esempio 1: utilizzare map() per generare variabili casuali

Il codice seguente mostra come utilizzare la funzione map() per generare tre variabili casuali contenenti ciascuna cinque valori che seguono una distribuzione normale standard:

 library (purrr)

#definevector
data <- 1:3

#apply rnorm() function to each value in vector
data %>%
  map( function (x) rnorm(5, x))

[[1]]
[1] 0.0556774 1.8053082 2.6489861 2.2640136 1.1062672

[[2]]
[1] 1.450175 1.123048 3.413677 3.055304 2.713801

[[3]]
[1] 2.936732 2.157129 3.693738 2.994391 2.567040

Per ogni elemento del vettore originale, la funzione map() ha applicato la funzione rnorm() per generare cinque valori casuali da una distribuzione normale standard .

Esempio 2: utilizzare map() per trasformare ciascun valore in un vettore

Il codice seguente mostra come utilizzare la funzione map() per calcolare il quadrato di ciascun valore in un vettore:

 library (purrr)

#definevector
data <- c(2, 4, 10, 15, 20)

#calculate square of each value in the vector
data %>%
  map( function (x) x^2)

[[1]]
[1] 4

[[2]]
[1] 16

[[3]]
[1] 100

[[4]]
[1] 225

[[5]]
[1] 400

Per ogni elemento del vettore originale, la funzione map() applicava una funzione che calcolava il quadrato di ciascun valore.

Esempio 3: utilizzare map() per calcolare la media di ciascun vettore nell’elenco

Il codice seguente mostra come utilizzare la funzione map() per calcolare il valore medio di ciascun vettore in un elenco:

 library (purrr)

#define list of vectors
data <- list(c(1, 2, 3),
             c(4, 5, 6),
             c(7, 8, NA))

#calculate mean value of each vector in list
data %>%
  map(mean, na. rm = TRUE )

[[1]]
[1] 2

[[2]]
[1] 5

[[3]]
[1] 7.5

Per ogni vettore nell’elenco, la funzione map() calcola il valore medio.

Dal risultato possiamo vedere:

  • Il valore medio del primo vettore nell’elenco è 2 .
  • Il valore medio del secondo vettore nell’elenco è 5 .
  • Il valore medio del terzo vettore nell’elenco è 7,5 .

Nota : l’argomento na.rm=TRUE indica a R di ignorare i valori NA durante il calcolo della media.

Risorse addizionali

I seguenti tutorial spiegano come utilizzare altre funzioni comuni in R:

Come utilizzare la funzione tapply() in R
Come utilizzare la funzione dim() in R
Come utilizzare la funzione table() in R
Come utilizzare la funzione sign() in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *