检测R中字符串中子字符串的位置

时间:2015-10-22 14:06:47

标签: r string stringr

考虑以下字符串:

"NIKE STORE COVENT GARDEN"

假设我们正在尝试从以下向量中检测哪个品牌匹配:

brands <- c("ADIDAS", "NIKE", "PUMA", "COVENT", "CONVERSE")

以下是我对结果输出所做的:

library(stringr)
> brands[str_detect("NIKE STORE COVENT GARDEN", brands)]
[1] "COVENT"    "NIKE"

显然,这里的品牌是“NIKE”,我知道它始终位于该位置之前。有没有什么方法可以定义一个规则,在我检测到多个品牌的情况下,我选择出现在字符串中较早的那个?

注意:在上面的示例中,我们方便地将品牌名称显示在字符串的开头。然而,我们有时会认为我们正在考虑的字符串是“0123 NIKE STORE COVENT GARDEN”的形式

1 个答案:

答案 0 :(得分:2)

您可以考虑使用str_locate而不是str_detect。怎么样:

brands[which.min(str_locate("NIKE STORE COVENT GARDEN", brands)[,1])]