首页 > 解决方案 > 使用常用词逐行合并两个数据框

问题描述

df1 <- data.frame(freetext = c("open until monday night", "one more time to insert your coin"), numid = c(291,312))
df2 <- data.frame(freetext = c("open until night", "one time to insert your be"), aid = c(3,5))

我会使用自由文本列作为选项来合并两个数据框。但是,文本与删除或显示的某些单词并不完全相同。

是否有任何选项可以找到行之间相同单词的最大数量并根据此合并它们?

这是预期输出的示例

df3 <- data.frame(freetext = c("open until night", "one time to insert your be"), aid = c(3,5), numid = c(291,312))

标签: rquanteda

解决方案


也许,您可以查看stringdist连接fuzzyjoin并使用max_dist适合您数据的参数。

fuzzyjoin::stringdist_inner_join(df1, df2, by = 'freetext', max_dist = 10)

#  freetext.x                        numid freetext.y                   aid
#  <chr>                             <dbl> <chr>                      <dbl>
#1 open until monday night             291 open until night               3
#2 one more time to insert your coin   312 one time to insert your be     5

推荐阅读