조건자

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

Colin Fay

Data Scientist & R Hacker at ThinkR

조건자란 무엇인가?

조건자: TRUE 또는 FALSE 반환

  • 조건 검사
  • 기본 R에 존재: is.numeric(), %in%, is.character()

 

is.numeric(10)
TRUE
purrr로 배우는 중급 함수형 프로그래밍

조건자 함수형이란 무엇인가?

조건자 함수형:

  • 요소와 조건자를 인수로 받음
  • 요소에 조건자를 적용

 

keep(airquality, is.numeric)
purrr로 배우는 중급 함수형 프로그래밍

every(): _모든_ 요소가 조건을 만족하는가?

# visits2016의 모든 요소가 숫자형인가?
every(visits2016, is.numeric)

# 모든 월의 평균이 1000 초과인가? every(visits2016, ~ mean(.x) > 1000)
TRUE

FALSE

some(): _일부_ 요소가 조건을 만족하는가?

# 일부 월의 평균이 1000 초과인가? 
some(visits2016, ~ mean(.x) > 1000)
TRUE
purrr로 배우는 중급 함수형 프로그래밍

detect_index()

# 평균이 1000 초과인 첫 번째 요소의 인덱스는?
detect_index(visits2016, ~ mean(.x) > 1000)
1
# 평균이 1000 초과인 마지막 요소의 인덱스는?
detect_index(visits2016, ~ mean(.x) > 1000, .right = TRUE)
11
purrr로 배우는 중급 함수형 프로그래밍

has_element()와 detect()

# 평균이 1000 초과인 첫 번째 요소의 값은?
detect(visits2016, ~ mean(.x) > 1000, .right = TRUE)
[1] 1289  782 1432 1171 1094 1015  582  946 1191 1393 1307 1125 1267 1345 1066  810  583 
[18] 733  795  766  873  656 1018  645  949  938 1118 1106 1134 1126
# 평균이 981인 월이 있는가?
visits2016_mean <- map(visits2016, mean)
has_element(visits2016_mean,981)
TRUE
purrr로 배우는 중급 함수형 프로그래밍

연습해 봅시다!

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

Preparing Video For Download...