使用purrr package學functional programming的觀念(四):search

在purrr package中,主要有三個函數帶有“search”的意涵,接受atomic vector和list兩種資料結構,再針對裡面的element作處理。這三個函數分別為contains(), detect(), detect_index()

#注意,丟進去的是list還是vector
#X為list
x <- list(1:10, 5, 9.9)
x %>% contains(1)
[1] FALSE
X %>% contains(1:10)
[1] TRUE
#Y為atomic vector
Y <- c(1,2,3)
Y %>% contains(1)
[1] TRUE
Y %>% contains(1:3)
[1] FALSE

#detect()和detect_index()兩者本質類似,都是使用predict function,只是一個回傳elements的值,一個回傳elements的位置,注意兩個都只會傳出“第一個”符合predict function的值!

detect(20:40, function(x){
  x > 22 && x %% 2 == 0
})
[1] 24

detect_index(20:40, function(x){
  x > 22 && x %% 2 == 0
})
[1] 5

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

w

連結到 %s