【发布时间】:2021-09-09 21:48:43
【问题描述】:
我想过滤一个数据框,其中我有一个不同名称的列。我需要应用的过滤器必须通过与另一个数据帧具有不同名称的另一列相似的名称(2 个或多个共同词)来过滤该数据帧。问题是两个数据帧的长度不同:第一个数据帧有 342 行,第二个数据帧有 1557 行。
想象一下我有这 2 个数据框:
df1 <- data.frame(name1 = c("Carlos Lopez Rey", "Monica Naranjo Garcia", "Antonio Perez Reverte", "Alejandro Martinez Amor", "Iñigo Muruzabal", "Daniel Huarte", "Javier Langarica", "Yearai Bacaicoa")
df2 <- data.frame(name2 = c("Lopez, Carlos", "Monica de Naranjo", "Garcia, Antonio", "Alejandro Martinez de Amor", "Muruzabal, Javier", "Pepe Gallego Lopez", "Fernando Alonso", "Arturo Goikoetxea", "Iñigo Lizarraga", "Laura Ripagaina", " Monica de Naranjo", "Rey Lopez, Carlos"),
phone = c("632548795", "658749521", "669874521", "686056350", "619106219", "687884760", "639362459", "645879521", "645214587", "613456789", "698547132", "698547123" ))
我想从 df2 中的“name2”列中获取具有相似名称(2 个或多个共同词)的人的“电话”和“name2”。
我想得到的结果是:
| name1 | name2 | phone |
|---|---|---|
| Carlos Lopez Rey | Lopez, Carlos | 632548795 |
| Monica Naranjo Garcia | Monica de Naranjo | 658749521 |
| Alejandro Martinez Amor | Alejandro Martinez de Amor | 686056350 |
| Monica Naranjo Garcia | Monica de Naranjo | 698547132 |
| Carlos Lopez Rey | Rey Lopez, Carlos | 698547123 |
重要提示:如您所见,同一个名称可以在第二个数据帧中出现多次,因为一个用户可以分配多个电话号码。我需要将每个电话号码分配给名称与第一个数据帧中包含的名称相似的每个用户。
提前致谢!!!!
【问题讨论】:
标签: r