purrr - 在地图调用中使用完整列表元素

时间:2016-09-02 15:40:53

标签: r purrr

拥有以下清单:

dat <- list(words = c("foo", "bar", "howdy"), 
        pattern=c(foobar="foo|bar", cowboy="howdy"), 
        furterdat=1)

我想以管道式方式执行以下操作

require(purrr)
require(stringr)
map(dat$pattern, ~str_detect(dat$words, .))

我试过想像

dat %>% map(.$pattern, ~str_detect, string=.$words)
dat %>% lmap(.$pattern, ~str_detect, string=.$words)

但是无法得到我想要的结果。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

以下是一个选项:

library(purrr)
library(stringr)

dat <- list(words = c("foo", "bar", "howdy"), 
        pattern=c(foobar="foo|bar", cowboy="howdy"), 
        furterdat=1)

dat$pattern %>% map(str_detect, dat$words)

#> $foobar
#> [1]  TRUE  TRUE FALSE
#> 
#> $cowboy
#> [1] FALSE FALSE  TRUE