2つのデータセットをマージします。私はこれをIDと日付にマージしたい。ただし、日付の一部は、他の日付にマージする行の1〜2日後に除外されます。どのように日付をマージすることができますが、日付の間に最大2日間の違いができますか?日付範囲に基づいてデータセットをマージする方法
マイデータ:
#Random letters to fill out a pathology report
pathRep<-replicate(20,paste(sample(LETTERS,50,replace=T),collapse=""))
pathDate<-as.Date(c("1993-12-22","1994-05-16","1992-07-20","1996-06-02","1992-04-20","1996-08-30","1992-01-26","1991-03-23","1995-12-28","1995-07-15","1993-04-04","1994-01-11","1999-08-21","1993-11-10","1994-02-26","1992-08-06","1993-06-29","1997-03-08","1998-03-03","1998-04-17"))
#Random Numbers
pathHospitalNum<-c("H432243","T662272","G424284","W787634","H432243","Y980037","H432243","W787634","Y980037","E432243","U874287","Y980037","U874287","W787634","Y980037","H432243","Y980037","E432243","W787634","W787634")
#Create the dataframe
pathdf<-data.frame(pathRep,pathDate,pathHospitalNum)
#Random letters to fill out a pathology report
EndoRep<-replicate(20,paste(sample(LETTERS,50,replace=T),collapse=""))
EndoDate<-as.Date(c("1993-12-22","1994-05-14","1992-07-19","1996-06-01","1992-04-20","1996-08-30","1992-01-24","1991-03-21","1995-12-28","1995-07-15","1993-04-02","1994-01-10","1999-08-21","1993-11-10","1994-02-26","1992-08-05","1993-06-29","1997-03-07","1998-03-03","1998-04-17"))
#Random Numbers
EndoHospitalNum<-c("H432243","T662272","G424284","W787634","H432243","Y980037","H432243","W787634","Y980037","E432243","U874287","Y980037","U874287","W787634","Y980037","H432243","Y980037","E432243","W787634","W787634")
#Create the dataframe:
Endodf<-data.frame(EndoRep,EndoDate,EndoHospitalNum)
これだけの正確な日付をマージします。
merge(Endodf,pathdf,by=c("Date","HospNum"))
私は多分私はdifftime列を作成することができると思ったが、私は、私はすべての日にすべての日付を比較してしまうだろうと思います時間がかかることがありますか?
あなたは一から一かかわりを持っている場合は、あなたがそれらを並べ替えることができ、リンクhttps://stackoverflow.com/questions/9269179/r-speeding-up-approximate-date-match-idata-frame – Wen
をチェック関心のある列を 'cbind'するだけです。 –