Я хочу объединить два фрейма данных, у каждого из которых есть столбец date
.Однако даты не всегда выровнены, поэтому я хочу объединить таким образом, чтобы все данные в df1
были сохранены, а данные из df2
помещены рядом с ближайшей соответствующей датой.
#Example dataframes
set.seed(5)
df1 <- data.frame(date=as.Date(c('2001-01-02','2001-01-03','2001-01-06','2001-01-15','2001-01-18','2001-01-21')),
val=rnorm(6))
df2 <- data.frame(date=as.Date(c('2001-01-01', '2001-01-08', '2001-01-15', '2001-01-21')),
info=rnorm(4))
df1
date val
1 2001-01-02 -0.84085548
2 2001-01-03 1.38435934
3 2001-01-06 -1.25549186
4 2001-01-15 0.07014277
5 2001-01-18 1.71144087
6 2001-01-21 -0.60290798
df2
date info
1 2001-01-01 -0.4721664
2 2001-01-08 -0.6353713
3 2001-01-15 -0.2857736
4 2001-01-21 0.1381082
Таким образом, столбец date
в приведенных выше кадрах данных не все совпадают, но я хочу, чтобы мой последний кадр данных выглядел следующим образом, который создается путем сопоставления date
в df2
с его ближайшим date
in df1
:
df1merged
date val info
1 2001-01-02 -0.84085548 -0.4721664
2 2001-01-03 1.38435934 -0.4721664
3 2001-01-06 -1.25549186 -0.6353713
4 2001-01-15 0.07014277 -0.2857736
5 2001-01-18 1.71144087 -0.2857736
6 2001-01-21 -0.60290798 0.1381082