Programmation fonctionnelle intermédiaire avec purrr
Colin Fay
Data Scientist & R Hacker at ThinkR
Prédicats : renvoient TRUE ou FALSE
is.numeric(), %in%, is.character(), etc.
is.numeric(10)
TRUE
Fonctionnelles de prédicat :
keep(airquality, is.numeric)
every() : est-ce que tous les éléments satisfont une condition ?
# Tous les éléments de visits2016 sont-ils numériques ? every(visits2016, is.numeric)# La moyenne de chaque mois est-elle > 1000 ? every(visits2016, ~ mean(.x) > 1000)
TRUEFALSE
some() : est-ce que certains éléments satisfont une condition ?
# La moyenne de certains mois est-elle > 1000 ?
some(visits2016, ~ mean(.x) > 1000)
TRUE
# Quel est le premier élément dont la moyenne dépasse 1000 ?
detect_index(visits2016, ~ mean(.x) > 1000)
1
# Quel est le dernier élément dont la moyenne dépasse 1000 ?
detect_index(visits2016, ~ mean(.x) > 1000, .right = TRUE)
11
# Quelle est la valeur du premier élément dont la moyenne dépasse 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
# Un mois a-t-il une moyenne de 981 ?
visits2016_mean <- map(visits2016, mean)
has_element(visits2016_mean,981)
TRUE
Programmation fonctionnelle intermédiaire avec purrr