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