首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-将大型数据帧拆分为几个较小的日期帧,对每个数据帧执行fuzzyjoin并输出到单个数据帧

R-将大型数据帧拆分为几个较小的日期帧,对每个数据帧执行fuzzyjoin并输出到单个数据帧
EN

Stack Overflow用户
提问于 2020-10-15 18:06:14
回答 1查看 94关注 0票数 1

我有两个数据帧,我需要使用fuzzyjoin函数连接它们。我已经尝试在整个数据帧上执行该函数,但没有足够的内存。其中一个数据帧UPRN充当保存地址的唯一标识符的源数据,另一个地址保存需要与该唯一标识符匹配的地址。

我意识到有相当多的问题与以下相关,但我发现似乎没有一个能回答我的问题。

我希望将大约45000行的地址拆分成可管理的块(读取较小的数据帧),例如5000行,仅按行位置。然后我想使用这些小数据帧来模糊连接到UPRN数据帧。例如,Address1读取前5000行,应用fuzzyjoin并输出Join1,然后Address2读取第5001到10000行,应用fuzzyjoin并输出Join2,依此类推。

下面是我想要的拆分的一个小例子;

代码语言:javascript
复制
> Address
Street                   Town            PostCode
742 Evergreen Terrace    Springfield     SP12 HS1
84 Evergreen Terrace     Springfield     SP14 DH9
....3 to 4999 skipped
23 Evergreen Terrace     Springfield     SP19 IA18
3230 Evergreen Terrace   Springfield     SP2 K43


**Function to split [Address]**
> Address1
Street                   Town            PostCode
742 Evergreen Terrace    Springfield     SP12 HS1
84 Evergreen Terrace     Springfield     SP14 DH9
...3 to 5000 skipped

> Address2
Street                   Town            PostCode
23 Evergreen Terrace     Springfield     SP19 IA18
3230 Evergreen Terrace   Springfield     SP2 K43
...5003 to 10000 skipped

然后我想按顺序将Address1连接到UPRN,然后将Address2连接到UPRN,输出到单独的文件(然后我可以追加)或输出到相同的文件。我已经有了连接函数,只需要一种方法来调用每个单独的dataframe。我该如何着手做这样的事情呢?我应该寻找哪些函数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-20 15:06:47

如果您将地址数据框拆分为一个数据框列表(例如,使用base::splitdplyr::group_split),则可以在该列表上调用purrr::map

purrr::map(list_of_dfs, ~fuzzy_join(x=., y=UPRN, by = "Street"))

您的结果将是一个数据帧列表,每个数据帧与UPRN模糊连接。然后,您可以调用bind_rows (或者您可以执行map_dfr)来再次获取同一数据框中的所有结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64369240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档