问题标签 [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 投票
1 回答
1567 浏览

r - 用 agrep 替换拼写错误的值

我有一个餐馆数据集,变量“CONAME”包含每个机构的名称。不幸的是,有很多拼写错误,我想更正它们。我已经使用以下代码尝试了 agrep 进行模糊集匹配(我将对所有主要链重复此代码):

rest2012$CONAME <- agrep("MC DONALD'S", rest2012$CONAME, ignore.case = FALSE, value = FALSE, max.distance = 3)

我收到以下错误消息: Error in $<-.data.frame( *tmp*, "CONAME", value = c(35L, 40L, 48L, : replacement has 3074 rows, data has 67424

有没有另一种方法可以替换拼写错误的名称,或者我只是使用错误的 agrep 函数?

0 投票
0 回答
54 浏览

r - 如何确定哪个配置文件最适合一组测试用例?

我有一个案例,我有一个需求描述(配置文件)和一些我想与配置文件匹配的案例(测试用例)。我已经确定了 function agrep,它似乎做了一些工作。至少它弄清楚了彼此之间的关系。但是,我想将每个案例与一个配置文件匹配。我想知道是否在某个地方隐藏了一个分数,可用于将每个案例与一个配置文件匹配。这将表明比赛有多好。

在下面的示例中,您会注意到 England 可以与其中两个配置文件匹配。我想了解是否可以做一些事情来进行权衡。

0 投票
1 回答
3318 浏览

r - “'模式'必须是非空字符串”R中的agrep错误

我收到以下错误:

尝试运行以下内容时:

使用大型数据库

但不是当我用小东西运行它时

我知道我应该提供可重现的代码,因此数据库只是 15-25 个随机字母的字符串,可以使用以下代码生成:

其中“n”是长度,“m”是 15-25 之间的整数。

0 投票
0 回答
105 浏览

r - 带有编译的 C 代码的 R 函数很慢

R 中的 agrep 函数基于 C 代码并按原样执行。但是,我注意到从 R 中执行 agrep 与直接系统调用 agrep 的命令行可执行文件之间存在显着(数量级)的性能差距。(目前仅在 Linux 上测试过)

我的代码的本质是这样的(x是250K字符串的向量,xNoisy是x中1000个随机采样字符串的向量,由几个随机字符修改):

(这里的 strings.txt 是包含 x 中的字符串的文件。)第一行需要 700 秒,第二行需要 10 (!) 秒。为什么会这样,有什么方法可以更接近 R 中 Linux agrep 的性能?

0 投票
1 回答
258 浏览

r - R 2 个巨大数据集之间的相关匹配。即使有拼写错误

我有输入

“我是一个人旅行,我刚带了一张去新加坡、达尔文、珀斯、阿德莱德、墨尔本、布里斯班、黄金成本、悉尼奥普拉、基督城、黄金海岸里奇兰、奥克兰、澳大利亚和斐济的世界机票。它是一个 10 个月的旅程。我将自己去,我并不害怕,但我的朋友和家人似乎反对这个想法。我已经解释说它是安全的,我可能会在途中遇到人,旅馆是没有你们想象的那么糟糕。至少有 1/3 的旅行我会和朋友和家人住在一起。我很兴奋,但人们的悲观观点让我怀疑安全性。我来自英国所以离家很远,他们害怕我遇到麻烦。我从来没有去过美国”

我有一个多达 5000 行的地点列表。像伦敦、新加坡、悉尼、奥克兰、斐济、黄金海岸、悉尼歌剧院、澳大利亚、英国、美国......

问题通过从地点列表匹配从输入中获取地点。有拼写错误和最接近的匹配。需要优化。

输出 新加坡|达尔文|珀斯|阿德莱德|墨尔本|布里斯班|黄金海岸|悉尼歌剧院|基督城|奥克兰|澳大利亚|斐济|英国|美国

尝试过的方法

######这也不起作用
0 投票
2 回答
469 浏览

r - 当名称在R中具有不同格式时按名称合并数据集

我在 R 中有两个不同的数据框,我试图将它们合并在一起。一个只是一组名称,另一个是一组名称,其中包含每个人的相应信息。

所以说我想采用第一个数据框:

并将其合并到这个:

这样我就有一个新列表,其中仅包含我的第一个列表中的人员以及第二个列表中的信息。如果两个“名称”值的格式相同,我可以只使用merge(),但是有没有办法以某种方式使用agrep() 或pmatch() 来做到这一点?

此外,我正在使用的第二个数据帧中有大约 2500 万行和 6 列,所以制作一个 for 循环是最快的方法吗?

示例数据的可重现版本:

0 投票
4 回答
739 浏览

regex - 检测数据框中高度相似但不一定完全重复的行

我想识别数据框中彼此高度相似但不一定完全重复的行。我考虑过将每一行的所有数据最后合并到一个字符串单元格中,然后使用部分匹配函数。如果能够设置/调整符合匹配条件所需的相似性级别(例如,返回与另一行中 75% 的字符匹配的所有行),那就太好了。

这是一个简单的工作示例。

在这种情况下,我希望第 2 行显示为第 1 行的副本,而不是第 4 行(这太不相似了)。感谢您的任何建议。

0 投票
0 回答
82 浏览

r - 如何模糊匹配以不同方式列出的人名的字符串 firstName lastName 或 lastName firstName 以及拼写错误

我有一个数据集,其中包含来自 59 个不同移民法庭的 600 万个法庭诉讼程序。除其他事项外,每条记录都包括一个律师代码。但是,每个唯一的律师都有多个代码。在另一个将律师代码与律师姓名相关联的表中,律师姓名在 firstName、lastName、middleName、Esq 等每个可以想象的排列中以单个字符串的形式列出。律师姓名还包括拼写错误。我相信有超过 10,000 名独特的律师。

以下是与单个律师关联的唯一代码/姓名对的示例,其真实(此处伪装)姓名应为“H. Todd Smith”(第一列是行号):

我的目标是为每个唯一的律师及其所有当前关联的代码/姓名分配一个唯一的 ID。但是没有我可以“匹配”的“真实”名称列表。如何生成唯一律师姓名的最佳候选人列表?

编辑

Richie Cotton 建议在另一篇文章中回答了这个问题——但另一篇文章处理的是“重复”记录,而在我的数据中,这些不是重复的,而是似乎与同一个人相关的独特记录,尽管没有这样编码. 此外,链接帖子中的主要建议答案涉及使用 CRAN 上不再可用的包。我是不是误会了什么?

0 投票
1 回答
785 浏览

regex - R agrep:如何匹配超过 1 个替换

我正在尝试将字符串与字符串向量匹配:

我没想到后一种结果是因为从模式中替换两个字符会使模式与向量元素相同。但是,这确实适用于all而不是substitutions

我需要更改哪些内容以匹配允许超过 1 个替换?只是substitution一个破碎的选择吗?谢谢。

注意:这个问题与这个问题基本相同:https ://stat.ethz.ch/pipermail/r-help/2011-June/281731.html ,但从未得到回答。

0 投票
1 回答
1921 浏览

r - 在 R 中,如何使用模糊匹配来搜索多个模式?

我有一个调查数据集,其中受访者描述了他们活动的位置,通常是城镇或城市名称。我想识别命名城市的每个唯一提及并计算每个城市被提及的次数。最终输出应该是一个向量,其中包含每个城市被提及的次数。一个挑战是城市名称可能拼写错误、大小写奇怪或嵌入更长的字符串中(其中可能还包括多个城市)。我有一个具有正确大小写和拼写的城市名称的主列表,我一直在尝试将其用作 agrep 函数的模式。

数据集的一个样本块的结构如下:

在此示例中,最终结果将是一个向量:

我一直在尝试使用 agrep 构造一个函数来遍历主向量,以便它在调查向量中搜索匹配项,计算匹配项的数量,然后输出主向量的每个项目的匹配项数。这是我到目前为止所拥有的,但我得到的都是NULL。不确定我做错了什么和/或是否有更好的方法来解决这个问题。