Dataframe 有没有一种方法可以选择性地应用这个stringr函数?
我有一组用户,其中一列包含他们自我报告的位置。因此,报告的某些位置毫无意义,但在将此列与已知位置的其他列进行匹配时,可能会导致误报。下面是数据帧的示例Dataframe 有没有一种方法可以选择性地应用这个stringr函数?,dataframe,string,r,data-manipulation,stringr,regex,Dataframe,String,R,Data Manipulation,Stringr,Regex,我有一组用户,其中一列包含他们自我报告的位置。因此,报告的某些位置毫无意义,但在将此列与已知位置的其他列进行匹配时,可能会导致误报。下面是数据帧的示例 data <- data.frame(X = (1:5), Y = c("", "Washington, DC", "Huntsville, AL", "Mobile,AL", "ALL OVER")) 这导致Huntsville和Mobile被正确识别为阳性,但由于字符串中的AL,第三个匹配的ALL被错误识别为匹配 data$match
data <- data.frame(X = (1:5), Y = c("", "Washington, DC", "Huntsville, AL", "Mobile,AL", "ALL OVER"))
这导致Huntsville和Mobile被正确识别为阳性,但由于字符串中的AL
,第三个匹配的ALL
被错误识别为匹配
data$match_ab <- str_extract(data[,2], str_c("AL$", collapse = "|")); data;
X Y match_ab
1 1 <NA>
2 2 Washington, DC <NA>
3 3 Huntsville, AL AL
4 4 Mobile,AL AL
5 5 ALL OVER <NA>
是否有方法调整此脚本,以便它在忽略字符串中所需部分附加字母的字符串时检测s中的匹配?换句话说,如果字母与字符串相邻,则在忽略匹配的情况下,当部分字符串的任一侧可能有空格或标点符号时,这能否检测到AL
提前谢谢。如果我理解正确,这对你有用吗:
data$match_ab <- str_extract(data[,2], "\\bAL\\b")
data$match\u ab在特定位置稍微调整一下匹配:在search\u项
之后添加$
,这是一个指定:如果只在字符串末尾出现,则需要匹配
data$match_ab <- str_extract(data[,2], str_c("AL$", collapse = "|")); data;
X Y match_ab
1 1 <NA>
2 2 Washington, DC <NA>
3 3 Huntsville, AL AL
4 4 Mobile,AL AL
5 5 ALL OVER <NA>
data$match\u ab我们也可以使用stri\u extract
fromstringi
library(stringi)
data$match_ab <- stri_extract(data[,2], regex = "\\bAL\\b")
库(stringi)
数据$match_ab
library(stringi)
data$match_ab <- stri_extract(data[,2], regex = "\\bAL\\b")