Załóżmy, że mam dwie ramki danych, takich jak:Jak dopasować najbliższą datę z dwóch ramek danych?
set.seed(123)
df1<-data.frame(bmi=rnorm(20, 25, 5),
date1=sample(seq.Date(as.Date("2014-01-01"),
as.Date("2014-02-28"),by="day"), 20))
df2<-data.frame(epi=1:5,
date2=as.Date(c("2014-1-8", "2014-1-15", "2014-1-28",
"2014-2-05", "2014-2-24")))
Moje pytanie brzmi: jak dopasować bmi
z epi
gdzie date1 są najbliżej przed lub na date2
? Wynik taki jak poniżej:
epi date2 bmi date1
1 1 2014-01-08 33.58 2014-01-08
2 2 2014-01-15 22.64 2014-01-15
3 3 2014-01-28 22.22 2014-01-26
4 4 2014-02-05 15.17 2014-02-01
5 5 2014-02-24 27.49 2014-02-15
Dzięki, Arun! Ale bmi to ten, który poprzednio lub na dzień 1, jak w moim przykładzie. –
Tak, to jest niesamowite! Dzięki Arun +1 –
Nienawidzę nit-pick, ale ze względu na precyzję: kolumna 'date' zawiera wartości z' date1', podczas gdy 'date1' zawiera wartości z' date2'. Zatem 'setnames' powinno raczej wyglądać jak' setnames (ans, c ('date', 'date1'), c ('date1', 'date2')) ' –