r - 有没有办法选择性地应用这个 stringr 函数?

标签 r data-manipulation stringr

我有一个 的用户,其中一列包含他们 self 报告的位置。因此,报告的某些位置是无意义的,但在将此列与已知位置的其他列匹配时可能会导致误报。下面是数据框的示例。

data <- data.frame(X = (1:5), Y = c("", "Washington, DC", "Huntsville, AL", "Mobile,AL", "ALL OVER"))

有了这些数据,我然后运行下面的代码来建立与 AL 的匹配。

library(stringr)
data$match_ab <- str_extract(data[,2], str_c("AL", collapse = "|"))

这导致 Huntsville 和 Mobile 被正确识别为阳性,但 ALL OVER 的第三个匹配项由于字符串中的 AL 而错误地识别为匹配项。

有没有办法调整这个脚本,以便它检测 内的匹配项? s 同时忽略字符串所需部分附有字母的字符串?换句话说,这是否可以检测 AL 而部分字符串的两边可能有空格或标点符号,而如果字母与字符串相邻则忽略匹配?

提前致谢。

最佳答案

如果我理解正确的话,这对你有用吗:

data$match_ab <- str_extract(data[,2], "\\bAL\\b")

使用 \\b 这是一个边界条件,因此如果它后面/前面有一个单词,则它不匹配任何内容或根据文档:符号\b 匹配单词任一边缘的空字符串

关于r - 有没有办法选择性地应用这个 stringr 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61274686/

相关文章:

r - 两个 POSIXct 对象的时间差计算不正确

r - 循环以根据 R 中的其他情况创建新变量(非常基本)

r - R中的行交错添加

r - 使用 R 在字符串中只保留完全大写的单词

r - 使用 RMySQL 连接到 MySQL 数据库

r - 有识别单词的功能吗?

r - 如何使用r中的ROCR软件包绘制ROC曲线*仅带有分类列联表*

R:矩阵乘法错误(不一致的参数)

r - 错误 "the condition has length > 1 and only the first element will be used"是什么意思?

r - 如何在 R 中将 str_split 与正则表达式一起使用?