检查string2中string1的每个单词是否都存在

时间:2017-10-16 19:39:33

标签: r

我想检查string1中是否存在string2的每个单词。示例

#1

我希望以下代码应该返回TRUE

string1 <- "My name is John Smith"
string2 <- "My Smith"

但它返回false

3 个答案:

答案 0 :(得分:2)

如果一切都是TRUE那么它就会出现,否则就没有。

> string1 <- "My name is John Smith"
> string2 <- "My Smith"
> 
> strsplit(string2,' ')[[1]] %in% strsplit(string1,' ')[[1]]
[1] TRUE TRUE
> 

测试用例:

> string3 <- 'He is Smith'
> strsplit(string3,' ')[[1]] %in% strsplit(string1,' ')[[1]]
[1] FALSE  TRUE  TRUE

答案 1 :(得分:0)

你可以这样做。如果在TRUE中找到拆分string2的所有元素,则为string1

all(sapply(unlist(strsplit(string2, " ")), grepl, string1))

[1] TRUE

答案 2 :(得分:0)

使用str_detect中的stringr

string1 <- "My name is John Smith"
string2 <- "My Smith"

library(stringr)
library(dplyr)

string1 %>%
  str_detect(str_split(string2, " ", simplify = TRUE)) %>%
  all()
# [1] TRUE

而不是unlist(),您可以使用simplify = TRUE中的str_split