如何在R中合并数据框列表并关联外部唯一ID字段?
问题描述
处理包含人员信息(姓名、地址、电话号码、邮箱等)的数据集时,遇到以下问题:
- 主DataFrame(
outputTable)中,电话号码和邮箱字段是嵌套的DataFrame列表 - 直接用
bind_rows合并电话信息列表后,无法将合并后的电话记录与所属用户的ID、姓名关联
原outputTable结构示例:
| ID | Name | Phone | Address | |
|---|---|---|---|---|
| 123 | Jane | 2 obs in dataframe | 1 obs in dataframe | 12 Way Road |
| 098 | Bill | 3 obs in dataframe | 2 obs in dataframe | 34 RockCliff |
以Bill的电话嵌套DataFrame为例:
| Label | Value | Primary |
|---|---|---|
| "" | 1234567890 | TRUE |
| "work" | 5555555555 | FALSE |
| "home" | 5550000000 | FALSE |
期望得到关联用户ID、姓名与对应电话信息的结果表。
解决方案
通过提取主表中的用户ID、姓名字段,结合嵌套的电话列表构建新DataFrame,再使用unnest函数展开嵌套数据,即可实现关联。
代码实现:
# 假设newDocument是原始数据来源 outputTable <- data.frame(newDocument, stringsAsFactors = FALSE) # 提取需要关联的字段和嵌套电话列表 idList <- outputTable$ID nameList <- outputTable$Name phoneList <- outputTable$Phone # 组合成新的DataFrame newDT <- data.frame(idList, nameList, phoneList, stringsAsFactors = FALSE) # 展开嵌套的电话列表,关联用户信息 finalDT <- unnest(newDT, phoneList)
执行后即可得到包含用户ID、姓名及对应所有电话信息的结果表。
内容的提问来源于stack exchange,提问作者imnotplutonium
相关产品推荐
相关产品推荐

