Здесь также можно использовать якорь regex
.Обратите внимание, что я изменяю ваш исходный ввод, чтобы быть более поучительным, как это будет выглядеть.
> list1<-list("q","w","e","r","t")
> list2<-list("a","a","aq","c","rs", "t")
>
> lapply(list1, function(x) grepl(paste0("^", x, "$"), list2))
[[1]]
[1] FALSE FALSE FALSE FALSE FALSE FALSE
[[2]]
[1] FALSE FALSE FALSE FALSE FALSE FALSE
[[3]]
[1] FALSE FALSE FALSE FALSE FALSE FALSE
[[4]]
[1] FALSE FALSE FALSE FALSE FALSE FALSE
[[5]]
[1] FALSE FALSE FALSE FALSE FALSE TRUE
Обратите внимание, что это должно работать и с sapply
.
РЕДАКТИРОВАТЬ:Чтобы получить более подробную информацию
Вот как будут выглядеть ваши результаты (без any
), если вы используете sapply
sapply(list1, function(x) grepl(paste0("^", x, "$"), list2))
[,1] [,2] [,3] [,4] [,5]
[1,] FALSE FALSE FALSE FALSE FALSE
[2,] FALSE FALSE FALSE FALSE FALSE
[3,] FALSE FALSE FALSE FALSE FALSE
[4,] FALSE FALSE FALSE FALSE FALSE
[5,] FALSE FALSE FALSE FALSE FALSE
[6,] FALSE FALSE FALSE FALSE TRUE
Теперь с помощью any
на оригиналевывод с lapply
против выхода sapply
будет выглядеть следующим образом:
lapply(lapply(list1, function(x) grepl(paste0("^", x, "$"), list2)), any)
[[1]]
[1] FALSE
[[2]]
[1] FALSE
[[3]]
[1] FALSE
[[4]]
[1] FALSE
[[5]]
[1] TRUE
И для sapply
any(sapply(list1, function(x) grepl(paste0("^", x, "$"), list2)))
[1] TRUE
Но если вы хотите apply
к вашемувыходы из исходного lapply
кода, вы можете использовать:
sapply(lapply(list1, function(x) grepl(paste0("^", x, "$"), list2)), any)
[1] FALSE FALSE FALSE FALSE TRUE
Это зависит от желаемого выхода.