如何使stringdist包extract等函数的maxDist参数忽略大小写
实现方法
你使用的stringdist包内置了大小写控制参数,无需自定义距离规则即可实现需求,有两种可行方案:
方案1:使用内置参数(推荐)
grab()、grabl()、extract()三个函数都支持case_sensitive参数,将该参数设置为FALSE即可让距离计算忽略字母大小写差异,此时'A'和'a'不会被计入字符距离,仅不同字母的差异会参与距离统计。
示例代码如下:
# 以grab函数为例 res <- grab( x = 待匹配的字符串向量, pattern = 匹配模式, maxDist = 你设定的最大距离阈值, case_sensitive = FALSE, # 核心配置,忽略大小写 value = FALSE )
方案2:统一字符大小写(兼容旧版本)
如果你使用的stringdist版本较低不支持上述参数,可以先将待匹配向量和匹配模式统一转为全小写/全大写,再执行匹配即可:
# 统一转小写后匹配 x_lower <- tolower(你的原始字符串向量) pattern_lower <- tolower(你的匹配模式) # 执行匹配,拿到索引后可以映射回原始向量 match_index <- grab(x = x_lower, pattern = pattern_lower, maxDist = 你的阈值) original_result <- 你的原始字符串向量[match_index]
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

