模糊地址匹配R

2023-11-27

是的,以前有人问过这个问题,但我找不到一个线程可以为这个问题提供简单、干净的答案。

我有下面的示例数据 - 我有两列,col1 是当前地址,col2 是我被告知比当前地址“更好”的地址。我需要看看第二列比第一列“好”多少。大多数时候,第二个更好,因为它包含第一个缺少的次要信息,例如公寓号码。

test <- as.data.frame(matrix(c(
"742 Evergreen Terrace" , "742 Evergreen Terrace Apt 3" , 
"31 Spooner Street #42" , "31 Spooner Street", 
"129 W 81st Street" , "129 W 81st Street Apt 5A" , 
"245 E 73rd Street", "245 E 73rd Street Apt 6") , ncol=2, byrow=TRUE, 
dimnames=list(NULL, c("old_addr" , "new_addr"))) ,stringsAsFactors=FALSE)

我在这里找到了一个接近我想要的答案:模糊匹配一列中的行与下一列中的相同行

我需要创建第三列,它是一个简单的 1/0 变量,如果近似匹配则为 == 1,否则为 0。我需要能够指定近似匹配的阈值。

对于我的第一个示例 - 742 Evergreen Terrace 与 742 Evergreen Terrace Apt 3,长度相差 6。我需要能够指定六、八或其他的长度差。

我查看了 agrep,但我需要比较同一行中的两列数据,但它不允许这样做。我也尝试过 lapply,但它的结果让我认为它正在循环遍历整个列中的所有数据,并且我需要逐行比较。另外,最大距离我不明白,下面的 ifelse 和最大值为 1(如果我正确理解为 1 == 可以有一个编辑或更改单位),它应该抛出错误,但它只在一个中出现案件。

agrep(test$old_addr, test$new_addr, max.distance = 0.1, ignore.case = TRUE)

test$fuzz_match <- lapply(test$old_addr , agrep , x = 
test$new_addr , max.distance = 1 , ignore.case = TRUE)

任何帮助表示感谢,谢谢!


您可以计算编辑距离每对之间。然后你需要决定的是距离必须有多大才能使两个地址不是同一个地址。

test$lev_dist <- mapply(adist, test$old_addr, test$new_addr)

test$same_addr <- test$lev_dist < 5

test
#                old_addr                    new_addr lev_dist same_addr
# 1 742 Evergreen Terrace 742 Evergreen Terrace Apt 3        6     FALSE
# 2 31 Spooner Street #42           31 Spooner Street        4      TRUE
# 3     129 W 81st Street    129 W 81st Street Apt 5A        7     FALSE
# 4     245 E 73rd Street     245 E 73rd Street Apt 6        6     FALSE

您可以使用agrep()和...一起mapply()以类似的方式。

test$agrep_match <- mapply(agrep, test$old_addr, test$new_addr)
test$agrep_match <- lengths(test$agrep_match) == 1
test
#                old_addr                    new_addr agrep_match
# 1 742 Evergreen Terrace 742 Evergreen Terrace Apt 3        TRUE
# 2 31 Spooner Street #42           31 Spooner Street       FALSE
# 3     129 W 81st Street    129 W 81st Street Apt 5A        TRUE
# 4     245 E 73rd Street     245 E 73rd Street Apt 6        TRUE

agrep()也基于 Levenshtein 距离,但有很多不同的选项用于调整阈值,我相信您已经发现了。


除了 Levenshtein 之外,还有其他差异度量可能更适合此应用程序。包裹stringdist还有许多其他可用的字符串距离度量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模糊地址匹配R 的相关文章

  • 将 data.frame 的列中的值替换为另一个 data.frame 中的值

    我的情况是 我有一个数据框 其中有一列填充了整数 1 到 6 我想用更具描述性的标签替换这些整数 这些标签在另一个充当 键 的数据框中提供 V1 V2 1 1 LABEL1 2 2 LABEL2 3 3 LABEL3 4 4 LABEL4
  • Shiny 中的模态对话框:可以调整宽度但不能调整高度

    在我的 Shiny 应用程序中 我有几个来自闪亮BS 包的模式窗口 我可以像这样调整这些模式窗口的宽度 tags head tags style HTML modal lg width 1200px abs 1 background col
  • 来自 data.frame 每一列的随机样本

    我想从 a 的每一行中抽取随机样本data frame独立于其他行 这是一个例子 此代码为每行选择相同的列 但我需要为每行独立选择列 library plyr set seed 12345 df1 lt mdply data frame m
  • 从 R 主题模型中的 DocumentTermMatrix 中删除空文档?

    我正在使用 R 中的 topicmodels 包进行主题建模 我正在创建一个 Corpus 对象 进行一些基本的预处理 然后创建一个 DocumentTermMatrix corpus lt Corpus VectorSource vec
  • profvis() 何时以及为何显示“源不可用”?

    我经常分析 R 代码 并大量使用 profvis 对于某些函数 浏览器窗口的上半部分会显示源代码 有时则不会 我不知道什么时候会出现这种情况 对我来说这似乎是随机的 有谁知道 profvis 何时以及为什么无法在顶部窗口中显示代码 发生这种
  • Quarto/Rmarkdown 中的美人鱼图:狭窄且模糊

    我正在尝试生成 pdf 格式的四开文档 稍后会生成 word 格式 我遇到了美人鱼图的问题 请在下面找到一个示例 qmd 文件来说明该问题 所以首先它应该支持 mermaid 标签 但当我这样做时 我无法在 rstudio 中 运行 单元
  • R比例置信区间因子

    我正在尝试总结家庭调查的数据 因此我的大部分数据都是分类 因子 数据 我想用对某些问题的回答频率图来总结它 例如 回答某些问题的家庭百分比的条形图 误差线显示置信区间 我发现了这个很棒的教程 我认为它是我祈祷的答案 http www coo
  • 有效地将环境从内部功能转移到全局环境

    我有一个在其中创建环境的函数 我希望将该环境分配给全局环境 目前我通过将环境分配给来做到这一点globalenv 作为最后一步 如下 funfun lt function inc 1 dataEnv lt new env dataEnv d
  • glm() 模型的交叉验证

    我正在尝试对我之前在 R 中构建的一些 glm 模型进行 10 倍交叉验证 我对cv glm 函数在boot包 尽管我已经阅读了很多帮助文件 当我提供以下公式时 library boot cv glm data glmfit K 10 这里
  • 将文本添加到 ggplot 中的轴标签

    我从下表中绘制了一个图表 BoatPhs fit se lower upper 1 Before 3 685875 0 3287521 3 038621 4 333130 2 After0 20NTA 3 317189 0 6254079
  • mclapply 用户时间大于已用时间

    我正在尝试使用mclapply的功能parallel封装在R 该函数通过计算对数似然距离将值分配给序列矩阵 这是一个 CPU 密集型操作 所结果的system time价值观令人困惑 gt system time mclapply work
  • 通过 RSelenium 单击按钮

    我正在尝试使用 Rselarium 和 Rvest 来抓取 REI 的评论 吊床 我想点击底部的按钮 x 次 这样我就可以抓取所有评论 我有点失落 这是我到目前为止所拥有的 如果您也知道如何在取景器中预览您正在做的事情 而不是屏幕打印 那就
  • 如何在 Shiny 中动态渲染的 textInput 添加样式元素

    你好堆栈溢出 在我最近提出的问题中 我已经解决了一些与动态渲染 UI 元素相关的主要问题 并在一些了不起的人的帮助下动态创建了观察者 参见此处 动态渲染的 UI 如何在第二次运行时删除旧的反应变量 https stackoverflow c
  • 分割单个 SpatialPolygons 对象的多边形部分

    在 R 中 我有一个SpatialPolygons包含数百个多边形的对象 即多个多边形 我想分割这个SpatialPolygons对象放入列表中Polygons 即孔应保持连接到父多边形 知道如何做到这一点吗 EDITED 使用以下提供的示
  • 使用 R 中的 tidyverse 重新调整因子和重新排序因子

    我想使用这些功能重新调平 and 重新排序 在我的数据框中 我了解重新调整级别的工作原理 但我不明白为什么我在 data frame 中看不到级别的变化 例如 假设我有鸢尾花数据集 library tidyverse head iris g
  • 无法在 Powershell 中运行 R.exe

    我经常发现在命令行 Windows 上运行 R 更有用 然而 当我在 Powershell 中尝试时 我往往会遇到问题 但这可以通过第一次运行轻松克服cmd然后就可以了 这是我执行此操作时遇到的错误R CMD BATCH Invoke Hi
  • for 循环与 cor.test 在许多类别上

    我正在尝试在 R 中编写一个循环 它将循环遍历 3 个不同的物种 以计算两个连续变量 Redness 和 VarNormAbund 之间的相关性 我的循环正在运行 但 3 个物种中每一个的输出都是相同的 这让我认为循环卡在第一个物种上 co
  • 如何制作一连串的ggplots并在它们之间绘制箭头?

    对于一个项目 我需要绘制一些图并在它们之间放置箭头作为序列的指示 我想知道我是否可以用 ggplot 来做到这一点 是否可以使用 ggplot2 绘制一个干净的大箭头并将其添加到最终的多重图中 作为示例 我使用此代码来绘制绘图 librar
  • 通过 RCpp 返回 NA

    新手 RCpp 问题在这里 How can I make a NumericVector returnNA到R 例如 假设我有一个 RCpp 代码 它分配NA到向量的第一个元素 RCpp export NumericVector myFun
  • DT数据表中的列对齐

    In my shiny我正在使用的应用程序datatable函数来自DT库构建一个表格并希望将列居中对齐 我可以用formatStyle column textAlign center 但它只影响列体而不影响标题 我们必须设置columnD

随机推荐

  • LESSCSS - 使用计算和返回值

    H i 希望你能帮忙 有没有办法LESS仅返回一个值 感觉我错过了一些非常明显的东西 假设我有 unit em basevalue 1 我可以用一些东西来给我一个速记回报 someClass padding basevalue unit 就
  • SonarQube:新代码的覆盖范围从未计算过

    我已经设置了 SonarQube Maven 和 Cobertura 以便在每次构建运行时上传单元测试覆盖率 我想使用差异视图来获取增量的覆盖范围 仅限新代码 覆盖范围本身已成功上传 我可以看到代码行的增量 但是 我无法让 新代码覆盖范围
  • 启动 PyCharm 时出错:无法加载 JVM DLL

    我之前安装了PyCharm是为了学习Python 之后我也安装了Eclipse来学习JAVA 顺便说一句 现在我启动 Eclipse 没有问题 但是当我启动 PyCharm 时 我看到如下错误消息 无法加载 JVM DLL C Progra
  • 更改表单的操作属性

    好吧 我一定在这里遗漏了一些东西 因为这应该非常简单 但它不起作用 我有一个form在我的页面上有一个空的action属性 action 当页面准备好后 我想更改action归因于其他事物 我的代码很简单 HTML
  • RecyclerView.Adapter 没有看到重写的 onBindViewHolder 方法?

    我在我的项目中使用 DataBindings 和 RecyclerView 我有一个 RecyclerView 的基本适配器 看起来像这样 public abstract class BaseAdapter
  • 将文件从 PostgreSQL 导入到 R

    我有一个很大的数据集 我将在 R 软件中进行一些分析 虽然我无法将数据正确导入到 R 中 我收到此错误 Error in postgresqlNewConnection drv RS DBI driver could not connect
  • 使用 Cypress 处理悬停在菜单上

    我最近偶然发现了 e2e 工具 赛普拉斯io 我目前正在为我合作的公司进行 POC 以对 React 应用程序进行 e2e 测试 就像现在大多数网络应用程序一样 它有一个悬停在菜单上的菜单 一个例子 URL Fmovies 我试图从鼠标悬停
  • 非贪婪正则表达式量词给出贪婪结果

    我有一个 net 正则表达式 正在使用 Windows Powershell 进行测试 输出如下 gt System Text RegularExpressions Regex Match aaa aaa bbb aaa bbb Group
  • 如何使用 Ember 动态地将新模板插入到 DOM 中?

    我有一个 Ember js 应用程序 在主模板中 我有一个帮助按钮 单击该按钮后应显示 CSS 工具提示 我的工具提示是一个单独的车把模板 我想做的是处理点击事件 将弹出窗口插入到 DOM 中并显示它 我不知道如何使用 Ember 将新模板
  • 将动态大小数组编组到结构中

    如何使用动态大小的数组定义结构 这样对吗 struct MyStruc public int len MarshalAs UnmanagedType LPArray SizeParamIndex 0 public int buf 假设您想要
  • 判断范围是否有数据

    以下代码从命名范围 Table24 创建一个图表 有时 该表没有有效数据 然后我希望数据集的范围为包含 0 的单元格 并填充没有数据的图表 这是 5 个图表中的第 4 个图表 使用调试 我确定这是每次运行时都会导致我的 Excel 文件崩溃
  • C++ 编译器如何区分二元运算符和模板的标记 >>

    我的疑问是关于 C 编译器的解析器 Clang 编译器如何处理运算符 gt gt 知道它何时是二元运算符以及何时关闭模板 例如 std vector
  • iOS Objective-C:在浮点数上使用模数从脚中获取“英寸”

    我正在尝试制作一个简单的 Objective C 高度转换器 输入是英尺的 浮点 变量 我想转换为 int 英尺和 浮点 英寸 float totalHeight 5 122222 float myFeet int totalHeight
  • 将 geom_smooth 添加到箱线图[重复]

    这个问题在这里已经有答案了 我正在尝试添加一个geom smooth 趋势是一些箱线图 但我没有正确获取图层 我怎样才能将这两者合并在一起 几何箱线图 ggplot test geom boxplot aes x factor year y
  • Django Heroku - ModuleNotFoundError:没有名为“django_heroku”的模块

    我正在 heroku 上部署一个网站 但遇到一些问题 我的项目叫做mysite project 我做了以下事情 1 创建一个Procfile包含 web gunicorn mysite project wsgi 在我的项目的根目录 与man
  • 如何检索在 Symfony 表单中配置为“mapped”=> false 的表单字段?

    如何检索配置的表单字段 mapped gt false并且不是 Symfony Form 中 ENTITY 表单的一部分 表单提交后 表单对象不包含配置为的字段 mapped gt false named 主复选框 表单生成器 class
  • 如何在键盘上方添加工具栏?

    我创建了一个UIToolBar以编程方式并添加了UITextField在上面 现在 当我单击另一个文本字段时 我需要该工具栏位于键盘上方 UIToolbar toolBar UIToolbar alloc initWithFrame CGR
  • iOS 7 应用程序的放大版本中状态栏不会消失

    我已经尝试了这里建议的一切 状态栏不会消失无济于事 我的 iPhone 版本的应用程序没有显示状态栏 但在我的 iPad 上 它运行我的 iPhone 版本的放大版本 有一个状态栏不会消失 如果有什么不同的话 我的应用程序的大部分应用程序都
  • Visual Studio 2008 文件夹浏览器对话框

    在 Visual Studio 2008 中 有一个文件夹浏览器对话框 如下所示 与文件打开对话框非常相似 有谁知道如何从代码中调用它 如果您使用 C 那么此解决方案适合您 这里提供源代码 http www lyquidity com de
  • 模糊地址匹配R

    是的 以前有人问过这个问题 但我找不到一个线程可以为这个问题提供简单 干净的答案 我有下面的示例数据 我有两列 col1 是当前地址 col2 是我被告知比当前地址 更好 的地址 我需要看看第二列比第一列 好 多少 大多数时候 第二个更好