检测 R 中字符串中子字符串的位置
Detecting location of substring within string in R
考虑以下字符串:
"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",而且我知道它一直位于位置之前。有什么方法可以定义一个规则,在我检测到多个品牌的情况下,我 select 是字符串中较早出现的品牌?
注意:在上面的示例中,我们方便地将品牌名称显示在字符串的开头。然而,有时我们会遇到这样的情况,即我们正在考虑的字符串的形式为“0123 NIKE STORE COVENT GARDEN”
您可以考虑使用 str_locate 而不是 str_detect。怎么样:
brands[which.min(str_locate("NIKE STORE COVENT GARDEN", brands)[,1])]
考虑以下字符串:
"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",而且我知道它一直位于位置之前。有什么方法可以定义一个规则,在我检测到多个品牌的情况下,我 select 是字符串中较早出现的品牌?
注意:在上面的示例中,我们方便地将品牌名称显示在字符串的开头。然而,有时我们会遇到这样的情况,即我们正在考虑的字符串的形式为“0123 NIKE STORE COVENT GARDEN”
您可以考虑使用 str_locate 而不是 str_detect。怎么样:
brands[which.min(str_locate("NIKE STORE COVENT GARDEN", brands)[,1])]