Como usar a função map() em r (com exemplos)
A função map() do pacote purrr em R pode ser usada para aplicar uma função a cada elemento de um vetor ou lista e retornar uma lista de acordo.
Esta função usa a seguinte sintaxe básica:
mapa (.x, .f)
Ouro:
- .x : um vetor ou uma lista
- .f : Uma função
Os exemplos a seguir mostram como usar essa função em diferentes cenários.
Exemplo 1: Use map() para gerar variáveis aleatórias
O código a seguir mostra como usar a função map() para gerar três variáveis aleatórias, cada uma contendo cinco valores que seguem uma distribuição normal padrão:
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
Para cada elemento do vetor original, a função map() aplicou a função rnorm() para gerar cinco valores aleatórios de uma distribuição normal padrão .
Exemplo 2: Use map() para transformar cada valor em um vetor
O código a seguir mostra como usar a função map() para calcular o quadrado de cada valor em um vetor:
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
Para cada elemento do vetor original, a função map() aplicou uma função que calculou o quadrado de cada valor.
Exemplo 3: Use map() para calcular a média de cada vetor da lista
O código a seguir mostra como usar a função map() para calcular o valor médio de cada vetor em uma lista:
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
Para cada vetor da lista, a função map() calcula o valor médio.
Pelo resultado podemos ver:
- O valor médio do primeiro vetor da lista é 2 .
- O valor médio do segundo vetor da lista é 5 .
- O valor médio do terceiro vetor da lista é 7,5 .
Nota : O argumento na.rm=TRUE diz ao R para ignorar os valores de NA ao calcular a média.
Recursos adicionais
Os tutoriais a seguir explicam como usar outras funções comuns em R:
Como usar a função tapply() em R
Como usar a função dim() em R
Como usar a função table() em R
Como usar a função sign() em R