मॅपर्स से अपना डेटा साफ़ करें

इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr

Colin Fay

Data Scientist & R Hacker at ThinkR

अपने objects के नाम सेट करना

set_names(): बिना नाम वाली list के नाम सेट करता है

names(visits2016)

length(visits2016)
month.abb
NULL

12
"Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
visits2016 <- set_names(visits2016, month.abb)
names(visits2016)
"Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr

map() से नाम सेट करना:

all_visits <- list(visits2015, visits2016, visits2017)
named_all_visits <- map(all_visits, ~ set_names(.x, month.abb))
names(named_all_visits[[1]])
"Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
names(named_all_visits[[2]])
"Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
names(named_all_visits[[3]])
"Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr

keep()

keep(): शर्त पूरी करने वाले elements निकालें

# किस महीने में 30000 से ज़्यादा visits हैं?
over_30000 <- keep(visits2016, ~ sum(.x) > 30000)
names(over_30000)
"Jan" "Mar" "Apr" "May" "Jul" "Aug" "Oct" "Nov"
limit <- as_mapper(~ sum(.x) > 30000)
# किस महीने में 30000 से ज़्यादा visits हैं?
over_mapper <- keep(visits2016, limit)
names(over_mapper)
"Jan" "Mar" "Apr" "May" "Jul" "Aug" "Oct" "Nov"
इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr

discard()

discard(): शर्त पूरी करने वाले elements हटाएँ

# किस महीने में 30000 से कम visits हैं?
under_30000 <- discard(visits2016, ~ sum(.x) > 30000)
names(under_30000)
"Feb" "Jun" "Sep" "Dec"
limit <- as_mapper(~ sum(.x) > 30000)
# किस महीने में 30000 से कम visits हैं?
under_mapper <- discard(visits2016, limit)
names(under_mapper)
"Feb" "Jun" "Sep" "Dec"
इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr

keep(), discard(), और map()

map() और keep() का उपयोग:

df_list <- list(iris, airquality) %>% map(head)
map(df_list, ~ keep(.x, is.factor))
[[1]]
  Species
1  setosa
2  setosa
3  setosa
4  setosa
5  setosa
6  setosa

[[2]]
data frame with 0 columns and 6 rows
इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr

अभ्यास करते हैं!

इंटरमीडिएट फ़ंक्शनल प्रोग्रामिंग विथ purrr

Preparing Video For Download...