2010-11-17 53 views
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獨特patient_id),我怎麼能加快步伐?謝謝。

回答

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 
+0

謝謝!你保存了我的一天,再次檢查數據,看看我是否有錯過任何東西。再次感謝! – lokheart 2010-11-17 04:05:34