gpt4 book ai didi

r - 使用 R 中的模糊/近似字符串匹配合并两个数据框

转载 作者:行者123 更新时间:2023-12-02 02:02:22 25 4
gpt4 key购买 nike

描述

我有两个数据集,其中包含需要合并的信息。我拥有的唯一公共(public)字段是不完全匹配的字符串和可能有很大不同的数字字段

解释问题的唯一方法就是向你展示数据。这是a.csvb.csv 。我正在尝试将 B 合并到 A。

B 中有三个字段,A 中有四个字段。公司名称(仅限文件 A)、基金名称、 Assets 类别和 Assets 。到目前为止,我的重点是尝试通过替换单词或部分字符串来创建精确匹配,然后使用:

a <- read.table(file = "http://bertelsen.ca/R/a.csv",header=TRUE, sep=",", na.strings=F, strip.white=T, blank.lines.skip=F, stringsAsFactors=T) 
b <- read.table(file = "http://bertelsen.ca/R/b.csv",header=TRUE, sep=",", na.strings=F, strip.white=T, blank.lines.skip=F, stringsAsFactors=T)
merge(a,b, by="Fund.Name")

但是,这只能使我达到大约 30% 的匹配率。剩下的事情我必须手工完成。

Assets 是一个数字字段,两者并不总是正确的,如果基金 Assets 较低,则可能会有很大差异。 Assets 类别是一个字符串字段,在两个文件中“通常”相同,但存在差异。

文件 B 中不同系列的基金让情况变得更加复杂。例如:

AGF Canadian Value

AGF Canadian Value-D

在这些情况下,我必须选择不连续的那个,或者选择名为“A”、“-A”或“Advisor”的那个作为匹配。

问题

您认为最好的方法是什么?这项练习是我每月必须做的事情,手动匹配它们非常耗时。代码示例将很有帮助。

想法

我认为可能有效的一种方法是根据字符串中每个单词的第一个大写字母标准化字符串。但我一直无法弄清楚如何使用 R 来实现这一点。

我考虑的另一种方法是根据 Assets 、基金名称、 Assets 类别和公司的组合创建匹配索引。但同样,我不确定如何使用 R 来做到这一点。或者,就此而言,如果可能的话。

非常感谢代码、评论、想法和方向的示例!

最佳答案

强烈建议使用 dgrtwo/fuzzyjoin包裹。
stringdist_inner_join(a,b, by="基金名称")

关于r - 使用 R 中的模糊/近似字符串匹配合并两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2231993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com