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

如何检查两个DataFrame的患者ID互存性并同步更新数据集

检查并对齐两个DataFrame中的患者数据

一、检查患者存在性

两个数据集的关联键分别是wd_patients$ID(患者唯一标识)和wd_appointments$patientID(预约关联的患者ID),可通过以下方法双向验证存在性:

1. 检查wd_patients中的患者是否都在wd_appointments中

找出患者表有但预约表无的患者:

library(tidyverse)
# 用anti_join筛选仅在患者表存在的记录
patients_missing_in_appts <- anti_join(wd_patients, wd_appointments, by = c("ID" = "patientID"))

# 查看缺失数量与具体ID
cat("患者表中无预约记录的患者数:", nrow(patients_missing_in_appts), "\n")
patients_missing_in_appts$ID

2. 检查wd_appointments中的患者是否都在wd_patients中

预约表可能存在重复患者ID,需先提取唯一ID再验证:

# 筛选仅在预约表存在的记录
appts_missing_in_patients <- anti_join(wd_appointments, wd_patients, by = c("patientID" = "ID"))

# 查看独有的患者ID数量与具体值
cat("预约表中无患者档案的唯一患者数:", length(unique(appts_missing_in_patients$patientID)), "\n")
unique(appts_missing_in_patients$patientID)

简洁的集合对比

直接用setdiff对比ID集合:

# 患者表独有的ID
setdiff(wd_patients$ID, wd_appointments$patientID)
# 预约表独有的ID
setdiff(wd_appointments$patientID, wd_patients$ID)

二、同步两个数据集的患者

根据业务需求选择两种同步方式:

方式1:补全缺失患者(保留所有患者,缺失字段填NA)

让两个数据集包含全部存在的患者,缺失的属性/预约记录用NA填充:

更新wd_patients,加入预约表中的新患者

# 生成预约表独有的患者的档案记录(缺失字段按业务规则填充)
new_patient_records <- tibble(
  ID = unique(appts_missing_in_patients$patientID),
  Age = NA_real_,
  Gender = NA_character_,
  AppointmentCount = 0,  # 也可改为NA,依业务需求调整
  TreatmentCompleted = NA_character_
)

# 合并到原患者表
wd_patients_updated <- bind_rows(wd_patients, new_patient_records)

更新wd_appointments,加入患者表的空预约记录

# 生成患者表独有的患者的空预约记录
new_appt_records <- tibble(
  patientID = patients_missing_in_appts$ID,
  apptDate = NA_POSIXct_,
  apptStatus = NA_character_
)

# 合并到原预约表
wd_appointments_updated <- bind_rows(wd_appointments, new_appt_records)

方式2:只保留双方共有的患者

若仅需保留两个表都存在的患者,用semi_join过滤:

# 过滤患者表:仅保留有预约记录的患者
wd_patients_filtered <- semi_join(wd_patients, wd_appointments, by = c("ID" = "patientID"))

# 过滤预约表:仅保留有患者档案的预约记录
wd_appointments_filtered <- semi_join(wd_appointments, wd_patients, by = c("patientID" = "ID"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 22:01:37