问题标签 [agrep]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - dplyr 过滤功能结合 agrep
我试图从我的表中只过滤标题列中包含“dog”一词的行,但我无法让它工作。
这是一个数据示例:
以下代码应该可以工作,但不能:
我希望看到第 3 行的 TRUE。任何帮助表示赞赏。谢谢
r - R agrep() 函数行为
我很难理解agrep()
函数的结果。我不明白我在功能描述中遗漏了什么。
agrep()
用于模糊匹配,我想用它来纠正一些拼写错误。我只想允许最多 2 次插入/删除/替换。
这是我的代码仅作为示例:
在这里,我期望这个请求没有答案,因为我无法转换"73SAINTGERVAIS"
为最多 2 次插入"73SAINTGERMAINLACHAMBOTTE"
/"73CHAMBERY"
删除/替换。但是,结果是:
这是否意味着插入/删除/替换的概念不是基于字符的(我的意思是字符串"MAINLACHALBOTTE"
被视为 1 次插入)?
r - R中不同长度数据帧的名称匹配
我有两个带有许多变量的数据框。主要关注的是以下变量,df1.organization_name 和 df2.legal.name。我只是在这里使用完全限定的 SQL 式名称。
df1 的尺寸为 15 x 2700,而 df2 的尺寸为 10x40,000。本质上,“通用”或“匹配”列是名称字段。
我通过 R 中的变量的模糊匹配查看了这篇文章 Merging,它非常有帮助,但我真的不知道如何处理脚本以使其与我的 dfs 一起使用。
我不断收到一个错误 - 错误其中(organization_name [i] == LEGAL.NAME):找不到对象'LEGAL.NAME'。
期望的匹配和结果
我想要做的是将我的每一个 df1.organization_name 与每一个 df2.legal_name 进行比较,如果它们非常接近(比如> = 85%),请进行比较。然后像上面的脚本一样,获取匹配的客户名称和匹配的比较名称,并将它们放入 data.frame 以供以后分析。
因此,如果我的客户名称之一是“Johns Hopkins Auto Repair”,而我的公共列表名称之一是“John Hopkins Microphone Repair”,我会认为这是一个很好的匹配,我希望在我的客户列表中附加某种指示符(在另一列中)显示“部分匹配”和公共列表中的名称。
用于文本整理的 dfs 示例:
df1.organization_name(这些是假名 b/c 我不能发布客户名称)
df2.LEGAL.NAME(这些是来自开源文件的真实姓名)
r - 如何匹配一个字符容差的字符串?
我有一个位置向量,我试图消除与正确位置名称向量的歧义。对于这个例子,我只使用了两个明确的位置:
帮助页面说max.distance
是
一场比赛允许的最大距离。表示为整数或模式长度乘以最大转换成本的分数
我不确定Levensthein距离的数学含义;我的理解是,距离越小,与我的歧义字符串向量不匹配的容忍度就越严格。
所以我会调整它以检索两个FALSE
?基本上,我TRUE
只想在有 1 个字符的差异时使用,例如:
r - 如何在 adist 和 agrep 函数中设置 cost 参数?
我需要一些帮助来理解这些函数的参数。我从帮助中举了一个例子。
ins,代表插入;del 删除;和 sub 用于替换。
从中不难看出,在比较字符串 1 visa vie 与字符串 2 时,发现SMMMSMI
; 2次换人1次插入,总距离应该是3。
这就是我不明白的,为什么当我将插入成本设置为零时,总距离的结果为零。由于替换的数量,我希望是 2。
非常感谢。
r - R的agrep函数不适用于文本匹配
我正在尝试agrep
使用R
. 我不明白,为什么它没有返回任何价值。我正在寻找一种解决方案,它将提供给定文本的封闭匹配。在给定的示例中,它应该显示"ms sharda stone crusher prop rupa"
我将不胜感激任何帮助。提前致谢。
r - 为什么 R 中的 agrep 找不到最佳匹配?
我正在尝试使用 agrep 命令在 R 中进行字符串匹配。但是我担心它会在找到一个好的匹配时停止,而不是优化以找到最好的匹配。尽管我对它的工作原理的理解可能不正确。我下面的例子重现了这个问题,尽管很粗糙。
正如您所希望看到的,agrep 已将体重与身高相匹配,此时体重是更好的匹配并且也存在。
为什么是这样?
r - R中的模糊映射
我正在尝试使用 agrep 命令进行模糊匹配。我有一个数据框,其中一列包含受众响应,另一个数据框列出了细分和子细分。列受众响应包含作为子分段名称的单词。例如:
同样,我有另一个名为 x 的数据框包含段和子段
我想编写一个函数,在 pattern$Audience 和 x$subsegment 之间进行模糊匹配,并在新列中返回每个观众响应的 subsegment 作为 pattern$subseg
我需要的结果数据集应该是这样的:
这是我尝试编写的代码,但它没有返回我想要的输出:
有人可以帮我纠正我的错误。我真的很感激你的回答。非常感谢
r - 在 R 中的嵌套 for 循环中引用元素
我正在尝试编写一个循环来对数据框执行以下操作:
对于“名称”列中的每个名称,检查“推荐”列中是否存在粗略匹配(通过 agrep() 完成)。如果存在匹配项,请将“推荐”列中与名称大致匹配的所有单元格替换为“推荐”。
到目前为止,这是我的代码:
但是,此代码(在运行 20 分钟后)将“推荐”列中的所有单元格替换为“推荐”。我想知道第一行中的“i”在整个循环中是否保持不变?显然是一个笨重的代码块,但我想不出它为什么会这样做......
一个例子是:
运行该函数后,理想情况下 df$Referral[3]=='referral' 将为 TRUE。
r - 在 R 中使用 agrep() 进行模糊匹配的替代方法
我有一个大的行政数据文件,大约 100 万条记录。在这个数据集中,个人可以多次表示。大约一半的记录具有将记录映射到个人的识别代码;对于没有的那一半,我需要模糊匹配名称以标记可能属于同一个人的记录。
通过查看带有识别码的记录,我创建了一个在同一个人的姓名记录中出现的差异列表:
- 包含中间名,例如 Jon Snow vs Jon Targaryen Snow
- 包含第二个姓氏,例如 Jon Snow vs Jon Targaryen-Snow
- 昵称/名字的缩写,例如 Jonathon Snow vs Jon Snow
- 姓名颠倒,例如 Jon Snow vs Snow Jon
- 拼写错误/错别字/变体:例如 Samual/Samuel、Monica/Monika、Rafael/Raphael
鉴于我所追求的匹配类型,有没有比使用 agrep()/levenshtein 的距离更好的方法,这在 R 中很容易实现?
编辑:R 中的 agrep() 不能很好地解决这个问题 - 因为我需要允许大量的插入和替换来解释名称的不同记录方式,所以会抛出很多错误的匹配项.