【发布时间】:2019-04-06 03:43:15
【问题描述】:
首先很抱歉,如果我的格式不好,这是我第一次发帖,(也是编程和 R 的新手)
我正在尝试在字符串变量上将两个数据框合并在一起。我正在合并可能无法完美匹配的大学名称,因此我希望使用模糊或近似字符串匹配函数进行合并。当我找到“fuzzyjoin”包时,我很高兴。
来自 cranR: stringdist_join:根据列的模糊字符串匹配连接两个表
stringdist_join(x, y, by = NULL, max_dist = 2, method = c("osa", "lv",
"dl", "hamming", "lcs", "qgram", "cosine", "jaccard", "jw","soundex"), mode = "inner", ignore_case = FALSE, distance_col = NULL, ...)
我的代码:
stringdist_left_join(new, institutions, by = c("tm_9_undergradu" = "Institution.Name"))
错误:
Error in dists[include] <- stringdist::stringdist(v1[include], v2[include], :
NAs are not allowed in subscripted assignments
我知道这些列中有一些 NA,但我不确定如何删除它们,因为我也需要它们。我知道 NA 的其他加入和合并功能将被忽略。有谁知道解决此包的此错误或以另一种方式对字符串进行近似连接的方法。谢谢您的帮助。
【问题讨论】:
-
如果您包含数据或其中的一些数据以及您期望的输出结果,那么人们会更容易尝试回答。您可以使用
dput命令获取创建数据框的代码。例如dput(new)和dput(institutions)。在没有看到数据的情况下,我的建议是将数据限制在连接变量不是 NA 的情况下。 -
感谢您的帮助 Kerry,我能够删除该列中带有 NA 的行,然后重新加入它们。我希望有一种方法可以在函数中执行此操作,但感谢您的帮助。
-
@Brian 你有没有找到更好的解决方案?这是我的确切问题,但我要加入多个专栏。我不断收到此错误。
-
@epi_n00b 我最终不得不事先删除带有 NA 的行,然后在加入后将它们重新绑定。我找不到任何方法让函数忽略它们。
标签: r dplyr merge fuzzy-comparison fuzzyjoin