gpt4 book ai didi

r - 模糊匹配两个数据框

转载 作者:行者123 更新时间:2023-12-05 05:42:30 24 4
gpt4 key购买 nike

我想合并两个数据框 df1 和 df2。

df1<-tibble(x=c("FIDELITY FREEDOM 2015 FUND", "VANGUARD WELLESLEY INCOME FUND"),y=c(1,2))
df2<-tibble(x=c("FIDELITY ABERDEEN STREET TRUST: FIDELITY FREEDOM 2015 FUND", "VANGUARD/WELLESLEY INCOME FUND, INC: VANGUARD WELLESLEY INCOME FUND; INVESTOR SHARES"),z=c(2020,2021))

我想基于 x 合并 df1 和 df2。目前,我尝试模糊匹配并使用

fuzzy_join(df1,df2,match_fun = function(x,y) grepl(x, y))

它给我的输出如下,

In grepl(x, y) :
argument 'pattern' has length > 1 and only the first element will be used.

您对合并 df1 和 df2 有什么想法吗?我正在考虑如何编写 match_fun 函数,但不确定如何进行。非常感谢!

最佳答案

我们可以使用 fuzzy_inner_joinfuzzyjoin 包中的 regex_inner_join

library(fuzzyjoin)
library(stringr)
df2 %>% fuzzy_inner_join(df1, by = "x", match_fun = str_detect)
  x.x                                                                                      z x.y                                y
<chr> <dbl> <chr> <dbl>
1 FIDELITY ABERDEEN STREET TRUST: FIDELITY FREEDOM 2015 FUND 2020 FIDELITY FREEDOM 2015 FUND 1
2 VANGUARD/WELLESLEY INCOME FUND, INC: VANGUARD WELLESLEY INCOME FUND; INVESTOR SHARES 2021 VANGUARD WELLESLEY INCOME FUND 2

或:

library(fuzzyjoin)
df2 %>% regex_inner_join(df1, by = "x")

关于r - 模糊匹配两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72009046/

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