You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中基于匹配完整行补全不完整行的People_ID

在R语言中填充不完整行的People_ID使其与匹配完整行一致

假设你的数据集存在可用于匹配同一人的标识列(如姓名、联系方式等),可以用dplyr包结合分组操作实现需求,以下是两种常用方法:

方法1:使用fill函数批量填充

fill可按组对缺失值进行上下方向填充,适合组内存在完整行的场景:

library(dplyr)

# 模拟你的数据集(请替换为实际数据)
df <- tibble(
  Name = c("张三", "张三", "李四", "李四", "王五"),
  Contact = c("138xxxx1234", "138xxxx1234", "139xxxx5678", NA, NA),
  People_ID = c("P001", NA, "P002", NA, "P003")
)

# 按匹配列分组,填充People_ID
df_processed <- df %>%
  group_by(Name, Contact) %>% # 替换为你数据中能唯一识别同一人的列
  fill(People_ID, .direction = "downup") %>% # 同时向上向下填充
  ungroup()

方法2:使用mutate提取组内有效People_ID

如果组内只有一个有效People_ID,直接提取该值覆盖组内所有缺失项:

df_processed <- df %>%
  group_by(Name) %>% # 按匹配列分组
  mutate(People_ID = first(na.omit(People_ID))) %>% # 取组内第一个非空的People_ID
  ungroup()

注意事项

  • 必须确保分组列能精准匹配同一个人,否则会出现错误填充
  • 如果分组后存在多个不同的非空People_ID,需要先清理数据冲突,再执行填充操作
  • 若你的“不完整行”仅缺失People_ID,其他列与完整行完全一致,分组列就是那些完全一致的字段

内容的提问来源于stack exchange,提问作者Connie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:27:09