如何检查字符向量的每个元素中是否存在子字符串?

How to check if a substring exists in each element of a character vector?

提问人:george1994 提问时间:10/11/2023 最后编辑:zx8754george1994 更新时间:10/11/2023 访问量:85

问:

我有一个名称向量和一个城市字符串。我想测试城市是否是名称向量中每个元素的一部分。但是,使用 grepl(city, name) 不起作用,因为城市的显示与名称中的显示不完全相同。

下面是我的数据示例:

name <- c("Business Applications for New York", "Proprietors' Farm Income in New York", "Farm Business")
city <- "New York NY"

所需的输出是布尔向量:c(TRUE, TRUE, FALSE)

如何有效地检查城市是否是 R 中名称向量中每个元素的一部分?任何建议或代码示例将不胜感激。谢谢!

R 字符 子集 grepl

评论

2赞 Konrad Rudolph 10/11/2023
对于这类问题,您需要指定所需的输出到底是什么,理想情况下,请展示一些反例来缩小所需的确切解决方案。出于您的目的,请查看函数的文档(特别是与参数的组合)。adist()partial = TRUE
1赞 george1994 10/11/2023
谢谢。我会检查一下。我只是通过添加所需的输出来编辑问题。

答:

4赞 jay.sf 10/11/2023 #1

你可以试试。agrepl

> agrepl(city, name, max.distance=3, ignore.case=TRUE, fixed=TRUE)
[1]  TRUE  TRUE FALSE