有一个患者的体检表,列名分别为患者ID,身高,体重,收缩压,舒张压,脉搏,但是有很多重复的患者,也有一些缺失值,怎样用R从重复患者里面筛选缺失值最少的行或者没有缺失值的行。
假设patient_data为体检表
library(dplyr)
# 筛选出重复患者
duplicated_patients <- patient_data %>%
group_by(patient_id) %>%
filter(n() > 1)
# 选择缺失值最少的行
least_missing <- duplicated_patients %>%
arrange(across(everything(), ~sum(!is.na(.)))) %>%
slice(1)
# 选择没有缺失值的行
no_missing <- duplicated_patients %>%
filter(rowSums(is.na(.)) == 0) %>%
slice(1)
# 合并
merged <- bind_rows(least_missing, no_missing)