r - 使用模糊连接匹配最大 1 个字符不同的字符串
问题描述
有没有办法检测两个字符串是否只有 1 到 0 个不同的字符?
可重现的例子:
library(fuzzyjoin)
library(stringr)
df1 <- data.frame(x = c("howaryou", "hello", "summer", "goodbye"), y = c(1:4))
df2 <- data.frame(x = c("howareyou", "heelo", "summe", "goodbye"), z = c(66:69))
fuzzy_left_join(df1, df2, match_fun = str_detect, by = "x")
x.x y x.y z
1 howaryou 1 <NA> NA
2 hello 2 <NA> NA
3 summer 3 summe 68
4 goodbye 4 goodbye 69
我试过str_detect
了,但这只有在不同的 chr 位于开头或结尾(“summer”和“summe”)时才有效。但是,我想得到
x.x y x.y z
1 howaryou 1 howareyou 66
2 hello 2 heelo 67
3 summer 3 summe 68
4 goodbye 4 goodbye 69
我很感激任何建议!
解决方案
stringdist
可能是一种选择
library(fuzzyjoin)
stringdist_left_join(df1, df2, by = 'x')
-输出
# x.x y x.y z
#1 howaryou 1 howareyou 66
#2 hello 2 heelo 67
#3 summer 3 summe 68
#4 goodbye 4 goodbye 69
推荐阅读
- graphviz - 如何用 GraphViz 分离节点的图片和标签?
- c - 在 c11 中使用 clang 编译的程序中调用 DX12 函数时出现问题
- c# - 使用 memoryStream 时已添加具有相同 key 的项
- python - 计算两个事件之间的时间差,同时忽略 Python 中不匹配的事件
- python - 使用 for/while 循环和 range() 列出值
- python - 在 python 中不允许 AssertionError for wordcloud 并且不要运行
- python - Scipy UnivariateSpline 在某些情况下退出代码 -1073741819
- angularjs - 如何按表达式选择自定义过滤器?
- jquery - 仅通过 indexOf 值删除 cookie.. 不是其他值
- vue.js - 如何更新 vue cli 版本?