Быстрый способ найти ближайшую дату из списка и применить к столбцу в R - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть столбец с датами (A) и столбец со списком дат (B). Вот как формат ввода:

+------+------------+--------------------------------------+
| Idx  |    date    | list_of_dates                        |
+------+------------+--------------------------------------+
| 1    | 2015-01-07 |'2014-11-06','2015-08-05','2017-01-07'| 
| 2    | 2016-02-13 |'2013-11-07','2015-12-05','2017-01-07'| 
| 3    | 2013-11-08 |'2012-04-09','2014-02-15','2016-04-03'|
+------+------------+--------------------------------------+

Я хочу применить функцию к этому фрейму данных, чтобы создать третий столбец с именем closest_date, где я бы нашел ближайшую дату (в будущем) в list_of_dates для дата в date. Для приведенного выше примера, результат будет:

    +------+------------+--------------------------------------+-------------+
    | Idx  |    date    | list_of_dates                        |closest_date |
    +------+------------+--------------------------------------+-------------+
    | 1    | 2015-01-07 |'2014-11-06','2015-08-05','2017-01-07'| 2015-08-05  |
    | 2    | 2016-02-13 |'2013-11-07','2015-12-05','2017-01-07'| 2017-01-05  |
    | 3    | 2013-11-08 |'2012-04-09','2014-02-15','2016-04-03'| 2014-02-15  |
    +------+------------+--------------------------------------+-------------+

Я смог написать функцию, которая берет дату и список дат и возвращает ближайший, затем использовал sapply для создания столбца, но это чрезвычайно медленно.

У кого-нибудь есть эффективный подход к этому? Спасибо.

...