Os muitos sabores de map()

Fundamentos de Programação Funcional com purrr

Auriel Fournier

Instructor

Saídas que não são listas

# Fazer map em survey_data e determinar o número de linhas
map(survey_data, ~nrow(.x))
$`LakeErieS`
[1] 14

$`LakeErieN`
[1] 14

$`LakeErieW`
[1] 14

$`LakeErieE`
[1] 15
Fundamentos de Programação Funcional com purrr

purrr::map_variants

Saída em lista

# Determinar o número de linhas
map(survey_data, ~nrow(.x))

   

     

Double, um tipo numérico

# Determinar o número de linhas
map_dbl(survey_data, ~nrow(.x))
$`LakeErieS`
[1] 14

$`LakeErieN`
[1] 14

$`LakeErieW`
[1] 14

$`LakeErieE`
[1] 15
14 14 14 15
Fundamentos de Programação Funcional com purrr

map_lgl()

Lista

# Determinar o número de linhas
map(survey_data, ~nrow(.x))

 

 

Lógico

# Verificar se os elementos têm 14 linhas
map_lgl(survey_data, ~nrow(.x)==14)
$`LakeErieS`
[1] 14

$`LakeErieN`
[1] 14

$`LakeErieW`
[1] 14

$`LakeErieE`
[1] 15
TRUE TRUE TRUE FALSE
Fundamentos de Programação Funcional com purrr

map_chr()

Saída em lista

# Fazer map na lista species_names
map(species_names, ~.x)

 

 

Character

# Fazer map na lista species_names
map_chr(species_names, ~.x)
$`LakeErieS`
[1] "Green Frog"

$`LakeErieN`
[1] "American Bullfrog"

$`LakeErieW`
[1] "Gray Treefrog"

$`LakeErieE`
[1] "Mudpuppy"
LakeErieS       LakeErieN 
"Green Frog"    "American Bullfrog" 
LakeErieW       LakeErieE 
"Gray Treefrog" "Mudpuppy"
Fundamentos de Programação Funcional com purrr

Hora do exemplo!

# Criar um data frame chamado survey_rows
survey_rows <- data.frame(names = names(survey_data),
                       rows = NA)

# Mapear survey_data para determinar o número de linhas em cada elemento survey_rows$rows <- map_dbl(survey_data, ~nrow(.x))
# Imprimir o data frame survey_rows survey_rows
    names       rows
1   LakeErieS   14
2   LakeErieN   14
3   LakeErieW   14
4   LakeErieE   15
Fundamentos de Programação Funcional com purrr

Vamos purrr-atizar!

Fundamentos de Programação Funcional com purrr

Preparing Video For Download...