如何在多个R数据框中识别共有居住州及对应人员?
解决方法
要找出两个及以上人员共同居住的州及对应人员,你需要先整合所有数据,再按州统计关联的人员——原代码只计算了三个人都住过的州交集,因此只能得到MN。具体实现步骤如下:
步骤1:整合所有人员的地址数据
先给每个数据框添加人员ID列,再合并成统一的数据框:
# 为每个数据框添加人员标识列 Anna$Person <- "Anna" Yusuf$Person <- "Yusuf" Robin$Person <- "Robin" # 合并所有地址数据 all_data <- rbind(Anna, Yusuf, Robin)
步骤2:去重并按州统计关联人员
同一个人可能多次居住在同一州,先保留「人员-州」的唯一组合,再按州分组提取对应的人员列表:
# 去重:保留每个人员对应每个州的唯一记录 unique_state_person <- unique(all_data[, c("Person", "state")]) # 按州分组,收集关联人员并统计人数 state_shared <- aggregate(Person ~ state, data = unique_state_person, FUN = function(x) list(x)) state_shared$count <- sapply(state_shared$Person, length)
步骤3:筛选出2人及以上共享的州
# 筛选人员数量≥2的州记录 result <- state_shared[state_shared$count >= 2, ] # 查看最终结果 print(result)
运行后会得到如下输出:
state Person count 2 NY Anna, Robin 2 3 MN Anna, Yusuf, Robin 3
内容的提问来源于stack exchange,提问作者chartreusefrogs
相关产品推荐
相关产品推荐

