1

我有一个这样的数据集:

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 个唯一的患者 ID),我该如何加快速度?谢谢。

4

1 回答 1

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
于 2010-11-17T03:53:03.740 回答