purrr를 활용한 프로그래밍 입문

purrr로 배우는 중급 함수형 프로그래밍

Colin Fay

Data Scientist & R Hacker at ThinkR

$whoami

커피를 마시는 강사 Colin Fay

purrr로 배우는 중급 함수형 프로그래밍

purrr 살펴보기

purrr로 배우는 중급 함수형 프로그래밍

이 강의에서 다루는 내용

map 기본 구조

출처: Charlotte Wickham — A introduction to purrr

purrr로 배우는 중급 함수형 프로그래밍

프랑스 생말로 공공 데이터 포털 웹사이트

purrr로 배우는 중급 함수형 프로그래밍

purrr 기초 복습 (1부)

map(.x, .f, ...)

  • .x의 각 요소에 대해
  • .f(.x, ...)를 실행하고
  • 리스트를 반환합니다
res <- map(visit_2015, sum) 
class(res)
"list"

map_dbl(.x, .f, ...)

  • .x의 각 요소에 대해
  • .f(.x, ...)를 실행하고
  • 숫자 벡터를 반환합니다
res <- map_dbl(visit_2015, sum) 
class(res)
"numeric"
purrr로 배우는 중급 함수형 프로그래밍

purrr 기초 복습 (2부)

map2(.x, .y, .f, ...)

  • .x와 .y의 각 요소에 대해
  • .f(.x, .y, ...)를 실행하고
  • 리스트를 반환합니다
res <- map2(visit_2015,
            visit_2016,
            sum)
class(res)
"list"

map2_dbl(.x, .f, ...)

  • .x와 .y의 각 요소에 대해
  • .f(.x, .y, ...)를 실행하고
  • 숫자 벡터를 반환합니다
res <- map2_dbl(visit_2015,
                visit_2016,
                sum)
class(res)
"numeric"
purrr로 배우는 중급 함수형 프로그래밍

purrr 기초 복습 (3부)

pmap(.l, .f, ...)

  • .l의 각 하위 리스트에 대해
  • f(..1, ..2, ..3, [등], ...)를 실행하고
  • 리스트를 반환합니다
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res  <- pmap(l, sum)
class(res)
"list"

pmap_dbl(.l, .f, ...)

  • .l의 각 하위 리스트에 대해
  • f(..1, ..2, ..3, [등], ...)를 실행하고
  • 숫자 벡터를 반환합니다
l <- list(visit_2014,
          visit_2015,
          visit_2016)
res <- pmap_dbl(l, sum)
class(res)
"numeric"
purrr로 배우는 중급 함수형 프로그래밍

연습해 봅시다!

purrr로 배우는 중급 함수형 프로그래밍

Preparing Video For Download...