如何在 R 中查找两个大小不等的向量之间的字符串匹配?

Clo*_*t X 5 string variables r dplyr

我有两个带有字符串的向量,如下所示:

x <- c("Zimbabwe (Rhodesia)", "India", "Equatorial Guinea", "United States")

y <- c("Zimbabwe", "India", "Guinea")
Run Code Online (Sandbox Code Playgroud)

我想获得一个向量,其中包含和之间不完全匹配的字符串。理想的结果是:xy

"Zimbabwe (Rhodesia)" "Zimbabwe" "Equatorial Guinea" "Guinea" "United States"
Run Code Online (Sandbox Code Playgroud)

我试图在这里巩固一些概念 - 我知道我可以用来grep(paste(y, collapse = "|")获取向量的部分匹配,并使用锚点来查找给定字符串的精确匹配。但如何整合它们呢?

我该怎么做呢?

ste*_*fan 5

一种选择是使用集合运算,即使用并集和交集的集合差:

x <- c("Zimbabwe (Rhodesia)", "India", "Equatorial Guinea", "United States")

y <- c("Zimbabwe", "India", "Guinea")

setdiff(union(x, y), intersect(x, y))
#> [1] "Zimbabwe (Rhodesia)" "Equatorial Guinea"   "United States"      
#> [4] "Zimbabwe"            "Guinea"
Run Code Online (Sandbox Code Playgroud)