比较数据框之间的字符串

时间:2018-10-04 20:55:36

标签: r string dataframe comparison

我希望了解R中的功能或工具的可行性以及对R的功能或工具的建议,以遍历一个数据帧中的一列,并逐字符串比较另一数据帧中一列中的每个字符串。

这个想法是在寻找另一个数据帧中的“可能匹配”时为每个字符串分配“是/否/也许”(可能存在拼写错误或键入错误...我只是想缩小范围搜索匹配项)

R可以很好地处理吗?

1 个答案:

答案 0 :(得分:2)

欢迎来到stackoverflow!有一个名为adist的函数,用于计算两个字符串之间的Levenshtien编辑距离(请参见类似的问题here)。

在不知道您的特定用例的情况下,我们可以举一个例子:

df <- data.frame(a = c('comparing', 'strings', 'between', 'dataframes'),
                 b = c('comparing', 'integers', 'between', 'data.frames'),
                 stringsAsFactors = F)

df$levenshtein <- mapply(adist, df$a, df$b)
df$ismatch <- 'maybe'
df$ismatch[df$levenshtein == 0] <- 'yes'
df$ismatch[df$levenshtein >= 3] <- 'no'

df
# gives:
           a           b levenshtein ismatch
1  comparing   comparing           0     yes
2    strings    integers           6      no
3    between     between           0     yes
4 dataframes data.frames           1   maybe

您当然可以更改'maybe'答案的范围。