开始使用免费开始使用

执行字符串距离连接

在数据分析中,整合两个不同的数据源非常常见。只要有可能,您都应该使用可明确识别的值(例如电子邮箱地址)来连接两张表。但如果用户只输入了姓名,而您需要在用户数据库中查找该用户,该怎么办?难点在于:人们可能会缩写名或姓、出现拼写错误,或者干脆漏掉一部分。

工作空间中有两个数据框:user_inputdatabase。前者包含不完美的用户输入,后者包含正确的姓名,但两份数据源都包含相同的 100 个姓名。使用字符串距离连接,您能匹配到多少个?顺便说一句:没有定义距离 method,因此会使用默认的最优字符串对齐距离 "osa"

本练习是课程的一部分

R 中级正则表达式

查看课程

练习说明

  • user_inputdatabase 按最大字符串距离 max_dist 进行连接,使成功匹配的姓名恰好为 80 个。请反复尝试,直到找到合适的最大距离。
  • 使用新创建的表 joined 输出一条便于阅读的报告句子。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Join the data frames on a maximum string distance of 2
joined <- stringdist_join(
  user_input,
  database,
  by = c("user_input" = "name"),
  ___ = ___,
  distance_col = "distance",
  ignore_case = TRUE
)

# Print the number of rows of the newly created data frame
print(glue(
  "{n} out of 100 names were matched successfully",
  n = nrow(___)
))
编辑并运行代码