purrr로 배우는 중급 함수형 프로그래밍
Colin Fay
Data Scientist & R Hacker at ThinkR
조건자: TRUE 또는 FALSE 반환
is.numeric(), %in%, is.character() 등
is.numeric(10)
TRUE
조건자 함수형:
keep(airquality, is.numeric)
every(): _모든_ 요소가 조건을 만족하는가?
# visits2016의 모든 요소가 숫자형인가? every(visits2016, is.numeric)# 모든 월의 평균이 1000 초과인가? every(visits2016, ~ mean(.x) > 1000)
TRUEFALSE
some(): _일부_ 요소가 조건을 만족하는가?
# 일부 월의 평균이 1000 초과인가?
some(visits2016, ~ mean(.x) > 1000)
TRUE
# 평균이 1000 초과인 첫 번째 요소의 인덱스는?
detect_index(visits2016, ~ mean(.x) > 1000)
1
# 평균이 1000 초과인 마지막 요소의 인덱스는?
detect_index(visits2016, ~ mean(.x) > 1000, .right = TRUE)
11
# 평균이 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로 배우는 중급 함수형 프로그래밍