Різні варіанти map()

Основи функціонального програмування з purrr

Auriel Fournier

Instructor

Нелістові виходи

# Застосуйте map до survey_data і визначте кількість рядків
map(survey_data, ~nrow(.x))
$`LakeErieS`
[1] 14

$`LakeErieN`
[1] 14

$`LakeErieW`
[1] 14

$`LakeErieE`
[1] 15
Основи функціонального програмування з purrr

purrr::map_variants

Вихід: list

# Визначте кількість рядків
map(survey_data, ~nrow(.x))

   

     

Double — різновид numeric

# Визначте кількість рядків
map_dbl(survey_data, ~nrow(.x))
$`LakeErieS`
[1] 14

$`LakeErieN`
[1] 14

$`LakeErieW`
[1] 14

$`LakeErieE`
[1] 15
14 14 14 15
Основи функціонального програмування з purrr

map_lgl()

List

# Визначте кількість рядків
map(survey_data, ~nrow(.x))

 

 

Logical

# Перевірте, чи елементи мають 14 рядків
map_lgl(survey_data, ~nrow(.x)==14)
$`LakeErieS`
[1] 14

$`LakeErieN`
[1] 14

$`LakeErieW`
[1] 14

$`LakeErieE`
[1] 15
TRUE TRUE TRUE FALSE
Основи функціонального програмування з purrr

map_chr()

Вихід: list

# Застосуйте map до списку species_names
map(species_names, ~.x)

 

 

Character

# Застосуйте map до списку 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"
Основи функціонального програмування з purrr

Час для прикладу!

# Створіть датафрейм на імʼя survey_rows
survey_rows <- data.frame(names = names(survey_data),
                       rows = NA)

# Застосуйте map до survey_data, щоб визначити кількість рядків у кожному елементі survey_rows$rows <- map_dbl(survey_data, ~nrow(.x))
# Виведіть датафрейм survey_rows survey_rows
    names       rows
1   LakeErieS   14
2   LakeErieN   14
3   LakeErieW   14
4   LakeErieE   15
Основи функціонального програмування з purrr

Давайте потренуємось!

Основи функціонального програмування з purrr

Preparing Video For Download...