заполнение пропущенных «дыр» в наборе данных - PullRequest
1 голос
/ 17 ноября 2010

У меня есть такой набор данных:

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 Ответ

1 голос
/ 17 ноября 2010

слияние, должно быть намного быстрее.

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
...