拥有以下清单:
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)
但是无法得到我想要的结果。有什么想法吗?
答案 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