r - 将不同数据表的两列与字符串部分匹配
问题描述
我有两个大数据表,df1 一列(full.name)
full.name
brad pitt
shah rukh khan
salman khan
taylor swift
justin bieber
xyz abc
和具有两列名称和年龄的 df2
name age
brad 10
shah 15
salman khan 20
taylor 30
justin 25
我想要的输出是
full.name name age
brad pitt brad 10
shah rukh khan shah 15
salman khan salman khan 20
taylor swift taylor 30
justin bieber justin 25
但是直到现在我才想按字符串匹配列,inner_join()
但它适用于那些完全匹配的值,所以我想按字符串匹配
解决方案
样本数据
library( data.table )
dt1 <- fread("full.name
brad pitt
shah rukh khan
salman khan
taylor swift
justin bieber
xyz abc", sep = "%")
dt2 <- fread('name, age
brad, 10
shah, 15
salman khan, 20
taylor, 30
justin, 25')
代码
library( fuzzyjoin )
regex_left_join( dt1, dt2, by = c( full.name = "name" ) )
输出
# full.name name age
# 1: brad pitt brad 10
# 2: shah rukh khan shah 15
# 3: salman khan salman khan 20
# 4: taylor swift taylor 30
# 5: justin bieber justin 25
# 6: xyz abc <NA> NA
推荐阅读
- php - 请解决我在 laravel 中的包问题
- arrays - Swift 需要数组按 2 个属性排序,其中一个包含逗号
- javascript - 在 Vue js 中渲染动态组件需要帮助
- scroll - Flatlist - 设置高度和滚动
- expect - 手动运行时不会发生使用期望的重复响应
- jquery - jquery timepicker 将时间设置为 00:00:00
- python - 尝试安装 Pillow (python) 时出错
- scala - Spark-Snowflake 连接错误
- python - 我的为 Null 值返回 0 的序列化程序不起作用
- python - 带有 Python NetworkX 图的 Reingold Tilford 布局