我想檢查string1中是否存在string2的每個字。例如檢查string2中每個字是否存在於string1中R
string1 <- "My name is John Smith"
string2 <- "My Smith"
我期待下面的代碼應返回TRUE
str_detect(string1, string2)
但它返回false
我想檢查string1中是否存在string2的每個字。例如檢查string2中每個字是否存在於string1中R
string1 <- "My name is John Smith"
string2 <- "My Smith"
我期待下面的代碼應返回TRUE
str_detect(string1, string2)
但它返回false
如果一切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
你能做到這一點。如果在string1
中找到拆分string2
的所有元素,則它是TRUE
。 str_detect
從stringr
all(sapply(unlist(strsplit(string2, " ")), grepl, string1))
[1] TRUE
使用:
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()
ING,你可以使用simplify = TRUE
從str_split