考虑以下字符串:
"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”的形式
答案 0 :(得分:2)
您可以考虑使用str_locate而不是str_detect。怎么样:
brands[which.min(str_locate("NIKE STORE COVENT GARDEN", brands)[,1])]