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"
             )

しかし、これは非常に遅いです(データセットには70527の一意のpatient_idを持つ92528行があります)、どうすれば高速化できますか?ありがとう。

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 に答える