问题标签 [fuzzyjoin]

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 回答
63 浏览

r - 使用 POSIXct 和 POSIXt 进行模糊连接

大家好,所以我有两个数据框,我想根据日期和时间加入它们。如果from是 inside和from ,它应该是一个fuzzy_join这样的连接工作。我试过了DATEtest2pickup_datetimedropoff_datetimetest1

但这会返回:Error: All columns in a tibble must be vectors. Column "col" is NULL.

更新:我找到了解决方案

感谢大家!

0 投票
1 回答
1742 浏览

r - 模糊连接错误:小标题中的所有列都必须是向量

嘿伙计们,所以我试图模糊加入纬度和经度信息以获取特定位置的邮政编码。我试过了:

但不幸的是,这会返回错误消息Error: All columns in a tibble must be vectors. x Column "col" is NULL. ,我不知道如何解决。在任一数据框中都没有列“col”。dropoff_longitute如果介于bounds_east和之间bounds_west,结果应该给我对应的邮政编码。提前非常感谢!dropoff_latitudebounds_northbounds_south

0 投票
1 回答
96 浏览

r - 如何加入位置数据(纬度,经度)

我必须数据集,一个包含某个位置(纬度,经度),即测试,另一个包含纽约市所有邮政编码的纬度/经度信息,即 test2。

我现在正在尝试加入这两个数据集,以便最终trip_count得到一个borough。到目前为止,我difference_left_join是这样使用的:

尽管这种方法有效,但随着数据集变大,这种连接会产生很多多重匹配,因此我最终得到的数据集有时是初始数据集的十倍test。有没有人有不同的方法来解决这个问题而不创建多个匹配?或者有什么办法可以强制连接总是只为每一行使用一个匹配项test?我将不胜感激!

编辑:解决这个问题R dplyr left join - 多个返回值和新行:如何只要求第一个匹配项?也会解决我的。所以也许你们中的一个人对此有一个想法!

0 投票
1 回答
117 浏览

r - Limiting the amount of fuzzy string comparisons by comparing by subgroup

I have two datasets as follows:

I am trying to match them as follows, suggested in this link, by Arthur Yip.

The issue is that the code completely fries my computer, so I would like to split up the code into groups to limit the amount of string comparisons. I tried:

But both give me the following respective errors:

And:

What would be the proper way to do this?

0 投票
1 回答
46 浏览

r - 大写字母(大小写)不匹配(stringdist)的 Fuzzyjoin / stringdist_join 权重

与 R 一起工作,我正在寻找在string_dist_left_join()

这是一个可重现的示例:

上面是在几个 tibbles 上重现fuzzyjoin 驱动的stringsidt_left_join 的代码。输出如下所示:

我想要的是某种方式来衡量大小写,例如,将贝德福德与 B ED福特进行比较:我希望这比贝德福德与贝德福德的匹配更差,但比贝德福德与贝德福特的匹配更好。该选项ignore_case = TRUE将 BEDford 视为与 Bedford 的完美匹配。

我喜欢fuzzyjoin 包,而且我刚刚发现了可以为每个删除、插入、替换和易位传递给stringdist 的自定义权重。这太棒了;玩的玩具,调整的参数。

我还想做的是调整大小写(大写?)匹配。我可以选择ignore_case = TRUE在 stringdist_left_join 中,(实际上,权重大小写为 0 或 1),但作为我讨厌的 cur,我想在 0 和 1 之间使用权重。

有谁知道我想念的地方是否有选择?

或者答案是:艰难地去做?我想可能有很长的路要走,涉及比较跑步前后的距离或计算与 比较的tolower()加权距离,但有谁知道我可以使用更优雅的方法或包来做到这一点?ignore_case = TRUEignore_case = FALSE

谢谢

0 投票
1 回答
31 浏览

r - 将两个数据帧分组并使用 stringdist_join 循环

我想使用 stringdist_join 按十年对美国县进行模糊匹配。由于县名会随着时间而变化,我想在每十年匹配正确的县名。

如果我写:

然后 stringdist_join 也会对十年进行模糊匹配,例如匹配 1960 到 1970 年,而实际上我想将十年变量视为正确并且仅模糊匹配县。

我可以看到我需要按十年对拼写错误和正确的数据帧进行分组,然后分别在每个数据帧上运行,但我不知道该怎么做。Tidyverse 解决方案将是首选。

谢谢!

0 投票
0 回答
80 浏览

r - 有没有办法在 R 中为字符串匹配设置“规则”?

我一直在摸索,试图找到一种方法来解决这个问题,而不必进入 NLP 并开始训练模型。我有 2 个相当大的数据集,应该可以按名称进行匹配,但它们的拼写和语法略有不同,很容易让人理解,但又足够复杂,以至于我的模糊匹配和 levenshtein 编辑距离不能。数据集中有大量重复项,但我无法手动映射它们就足够了,所以我试图围绕要匹配的内容创建“规则”。像 FuzzyWuzzy 这样的包是否允许更多定制元素来解决这个问题?下面的例子,谢谢!

到目前为止,我在匹配数据集方面得到的最接近的是模糊字符串匹配,但这只能很好地工作,并且随着我增加最大编辑距离,仍然会遗漏一大块或产生相当多的错误。

数据集比这更深入。我希望制定某种“规则”,即“纽约市”始终等于“纽约市”,但我不确定是否有更聪明的方法来解决这个问题。我希望这个特定的文本示例有所帮助。非常感谢!

0 投票
0 回答
173 浏览

r - 使用 stringdist_left_join 通过多列连接,但并非所有列都模糊

我有一个 130 万行的出版物数据集,对于每条记录,我想从具有 860 万行的第二个数据集中检索一个 paper_id。这个想法是使用两个表中的多个列在 dataset2 中查找 dataset1 的匹配项,如此功能性但简化的脚本所示:

我这里有两个问题。首先是只有“标题”具有需要模糊匹配的变体(拼写错误、缩写、特殊字符等),但代码接受所有三个使用字段的变体。这会增加可能匹配错误的数量,因为类似的标题出现在不同的年份和出版物中。

我认为可以解决第一个问题的解决方案是:

这将解决第一个问题,但还有第二个问题:脚本在样本数据上运行正常,但是当我尝试将它用于整个数据集时,它会给出错误“向量内存已用尽(达到限制?)”。

所以,我的问题是:

  1. 是否可以确定哪些列应该是相同的,哪些应该是模糊的,这可能会使脚本更轻?

  2. 是否有可能根据相同的变量对两个数据集进行子集化,然后在子集中的标题上运行模糊匹配,将所有内容合并回来?(我不确定这是否可行,因为我将拥有 18 万个子集:六年的 3 万份出版物)。

任何帮助表示赞赏。

最好的

0 投票
1 回答
71 浏览

r - 如何使用 IRange 一次性模糊连接多个数据帧

我需要加入几个基于不精确匹配的数据帧,这可以使用fuzzyjoinIRanges包来实现:

数据:

在这里,我想根据和之间的间隔df2加入和。我能做的就是分步进行,即通过加入加入:df3df1startend

结果:

这一切都很好,但在我的实际数据中,我有多个数据框要加入,然后,逐个加入是不切实际且容易出错的。如何一次性对所有数据帧执行连接?

0 投票
1 回答
46 浏览

r - `interval_left_join` 多个数据帧的函数

我有几个我想要的数据框interval_left_join。理论上我可以逐步加入数据帧,但更喜欢一个函数来一次执行连接:

数据:

我想df1根据它们startend间隔汇集到的变量是v2, v3, v4. 到目前为止我尝试过的是下面的代码:它输出了partyl不正确的数据并且完全v2失败了——这里有什么遗漏或错误?v3v4

期望的结果是这样的: