问题标签 [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.

0 投票
2 回答
405 浏览

r - dplyr 过滤功能结合 agrep

我试图从我的表中只过滤标题列中包含“dog”一词的行,但我无法让它工作。

这是一个数据示例:

以下代码应该可以工作,但不能:

我希望看到第 3 行的 TRUE。任何帮助表示赞赏。谢谢

0 投票
1 回答
2213 浏览

r - R agrep() 函数行为

我很难理解agrep()函数的结果。我不明白我在功能描述中遗漏了什么。 agrep()用于模糊匹配,我想用它来纠正一些拼写错误。我只想允许最多 2 次插入/删除/替换。

这是我的代码仅作为示例:

在这里,我期望这个请求没有答案,因为我无法转换"73SAINTGERVAIS"为最多 2 次插入"73SAINTGERMAINLACHAMBOTTE"/"73CHAMBERY"删除/替换。但是,结果是:

这是否意味着插入/删除/替换的概念不是基于字符的(我的意思是字符串"MAINLACHALBOTTE"被视为 1 次插入)?

0 投票
0 回答
271 浏览

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(这些是来自开源文件的真实姓名)

0 投票
1 回答
1450 浏览

r - 如何匹配一个字符容差的字符串?

我有一个位置向量,我试图消除与正确位置名称向量的歧义。对于这个例子,我只使用了两个明确的位置:

帮助页面说max.distance

一场比赛允许的最大距离。表示为整数或模式长度乘以最大转换成本的分数

我不确定Levensthein距离的数学含义;我的理解是,距离越小,与我的歧义字符串向量不匹配的容忍度就越严格。

所以我会调整它以检索两个FALSE?基本上,我TRUE只想在有 1 个字符的差异时使用,例如:

0 投票
1 回答
1204 浏览

r - 如何在 adist 和 agrep 函数中设置 cost 参数?

我需要一些帮助来理解这些函数的参数。我从帮助中举了一个例子。

ins,代表插入;del 删除;和 sub 用于替换。

从中不难看出,在比较字符串 1 visa vie 与字符串 2 时,发现SMMMSMI; 2次换人1次插入,总距离应该是3。

这就是我不明白的,为什么当我将插入成本设置为零时,总距离的结果为零。由于替换的数量,我希望是 2。

非常感谢。

0 投票
1 回答
651 浏览

r - R的agrep函数不适用于文本匹配

我正在尝试agrep使用R. 我不明白,为什么它没有返回任何价值。我正在寻找一种解决方案,它将提供给定文本的封闭匹配。在给定的示例中,它应该显示"ms sharda stone crusher prop rupa"

我将不胜感激任何帮助。提前致谢。

0 投票
1 回答
687 浏览

r - 为什么 R 中的 agrep 找不到最佳匹配?

我正在尝试使用 agrep 命令在 R 中进行字符串匹配。但是我担心它会在找到一个好的匹配时停止,而不是优化以找到最好的匹配。尽管我对它的工作原理的理解可能不正确。我下面的例子重现了这个问题,尽管很粗糙。

正如您所希望看到的,agrep 已将体重与身高相匹配,此时体重是更好的匹配并且也存在。

为什么是这样?

0 投票
1 回答
329 浏览

r - R中的模糊映射

我正在尝试使用 agrep 命令进行模糊匹配。我有一个数据框,其中一列包含受众响应,另一个数据框列出了细分和子细分。列受众响应包含作为子分段名称的单词。例如:

同样,我有另一个名为 x 的数据框包含段和子段

我想编写一个函数,在 pattern$Audience 和 x$subsegment 之间进行模糊匹配,并在新列中返回每个观众响应的 subsegment 作为 pattern$subseg

我需要的结果数据集应该是这样的:

这是我尝试编写的代码,但它没有返回我想要的输出:

有人可以帮我纠正我的错误。我真的很感激你的回答。非常感谢

0 投票
2 回答
120 浏览

r - 在 R 中的嵌套 for 循环中引用元素

我正在尝试编写一个循环来对数据框执行以下操作:

对于“名称”列中的每个名称,检查“推荐”列中是否存在粗略匹配(通过 agrep() 完成)。如果存在匹配项,请将“推荐”列中与名称大致匹配的所有单元格替换为“推荐”。

到目前为止,这是我的代码:

但是,此代码(在运行 20 分钟后)将“推荐”列中的所有单元格替换为“推荐”。我想知道第一行中的“i”在整个循环中是否保持不变?显然是一个笨重的代码块,但我想不出它为什么会这样做......

一个例子是:

运行该函数后,理想情况下 df$Referral[3]=='referral' 将为 TRUE。

0 投票
2 回答
581 浏览

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() 不能很好地解决这个问题 - 因为我需要允许大量的插入和替换来解释名称的不同记录方式,所以会抛出很多错误的匹配项.