Mapper'lara giriş

purrr ile Orta Düzey Fonksiyonel Programlama

Colin Fay

Data Scientist & R Hacker at ThinkR

purrr'da .f

Bir fonksiyon:

  • .x'in her bir elemanı için
  • .f(.x, ...) uygula

Bir sayı $n$:

  • .x'in her bir elemanı için
  • .x[$n$] uygula

Bir karakter vektörü $z$

  • .x'in her bir elemanı için
  • .x[$z$] uygula
purrr ile Orta Düzey Fonksiyonel Programlama

.f bir fonksiyon olarak

Fonksiyon olduğunda, .f şunlardan biri olabilir:

  • Klasik bir fonksiyon
my_fun <- function(x) {
  round(mean(x))
}
map_dbl(visit_2014, my_fun)
 [1]  5526  6546  6097  7760
 [5]  7025  7162 10484  8256
 [9]  6558  7686  5723  5053

 

  • Lambda (anonim) fonksiyon
map_dbl(visit_2014, function(x) {
  round(mean(x))
})
 [1]  5526  6546  6097  7760
 [5]  7025  7162 10484  8256
 [9]  6558  7686  5723  5053
purrr ile Orta Düzey Fonksiyonel Programlama

Mapper'lar: bölüm 1

mapper: tek taraflı formülle anonim fonksiyon

# Tek parametre ile 
map_dbl(visits2017, ~ round(mean(.x)))

# Şuna eşdeğer 
map_dbl(visits2017, ~ round(mean(.)))

# Şuna eşdeğer 
map_dbl(visits2017, ~ round(mean(..1)))
purrr ile Orta Düzey Fonksiyonel Programlama

Mapper'lar: bölüm 2

mapper: tek taraflı formülle anonim fonksiyon

# İki parametre ile
map2(visits2016, visits2017, ~ .x + .y)

# Şuna eşdeğer 
map2(visits2016, visits2017, ~ ..1 + ..2)
# İkiden fazla parametre ile
pmap(list, ~ ..1 + ..2 + ..3)
purrr ile Orta Düzey Fonksiyonel Programlama

as_mapper()

as_mapper(): lambda fonksiyondan mapper nesneleri oluşturur

# Klasik fonksiyon 
round_mean <- function(x){
    round(mean(x))
}
# Mapper olarak
round_mean <- as_mapper(~ round(mean(.x))))
purrr ile Orta Düzey Fonksiyonel Programlama

Neden mapper?

Mapper'lar:

  • Özlü

  • Okuması kolay

  • Yeniden kullanılabilir

Mapper oluşturma

purrr ile Orta Düzey Fonksiyonel Programlama

Haydi pratik yapalım!

purrr ile Orta Düzey Fonksiyonel Programlama

Preparing Video For Download...