r - 比较数据帧之间的字符串
问题描述
我希望了解 R 中函数或工具的可行性和任何建议,以遍历一个数据帧中的列并逐个字符串比较来自另一个数据帧的列中的每个字符串。
这个想法是在另一个数据框中寻找“可能的匹配”时为每个字符串分配一个“是/否/可能”(可能存在拼写错误或输入错误......我只是想缩小搜索范围火柴)
这是R可以很好地处理的事情吗?
解决方案
欢迎来到堆栈溢出!有一个称为adist
计算两个字符串之间的 Levenshtien 编辑距离的函数(请参见此处的类似问题)。
在不知道您的具体用例的情况下,我们可以举一个例子:
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'
答案的范围。
推荐阅读
- powershell - Exchange PowerShell:如何通过变量将多个值传递给 New-DistributionGroup 命令的 -Members(或 -ManagedBy)参数
- indexing - 如何为此查询优化 Azure Cosmos 索引
- c - 为什么C打印小数点后的浮点值与输入值不同?
- postgresql - 如何在postgresql中将多种日期格式转换为一种格式
- javascript - 如何在材料表中定义tr、td、标签样式
- python - Python tkinter 创建图像
- c# - 将 .NET core 2.0.8 目标应用程序托管到 IIS 时出错
- ruby-on-rails - Webp 图像未通过链接预览
- spring-data-jpa - 如何在 JPA 实体的集合字段中获取特定元素?
- ios - iOS - 来自 .txt 文件的键盘扩展词预测