填充数据集中缺少的“漏洞”

时间:2010-11-17 03:02:06

标签: r plyr

我有这样的数据集:

Patient_ID Lab_No Discharge_Date
P0001      L001   2010-01-01
P0001      L002   
P0001      L003   
P0001      L004   

我有一些来自同一患者的实验室数据,一些实验室数据没有它应该具有的出院日期。我需要将丢失的放电日期放入其中,目前我正在使用以下代码:

temp <- ddply(temp,
             c("Patient_ID"),
             function(df)
               {
                df[,"Discharge_Date"] <- unique(df[!is.na(df[,"Discharge_Date"]),"Discharge_Date"])
                data.frame(df)
               },
             .progress="text"
             )

但这很慢(数据集有92528行,70527独特的patient_id),我怎样才能加快速度?感谢。

1 个答案:

答案 0 :(得分:1)

合并,应该快得多。

temp2 <- na.omit(temp) ## create unique discharge date x patient ID list
temp3 <- merge(temp[1:2], temp2[c(1,3)], by="Patient_ID") ## merge