У меня есть два data.frames, lookup_df
и values_df
. Для каждой строки в lookup_df
я хочу найти ближайшее значение в values_df
, которое меньше или равно значению индекса.R Поиск ближайшего значения в data.frame меньше, чем другое значение
Вот мой код до сих пор:
lookup_df <- data.frame(ids = 1:10)
values_df <- data.frame(idx = c(1,3,7), values = c(6,2,8))
Что я хотел для result_df является следующее:
> result_df
ids values
1 1 6
2 2 6
3 3 2
4 4 2
5 5 2
6 6 2
7 7 8
8 8 8
9 9 8
10 10 8
Я знаю, как сделать это с помощью SQL довольно легко, но я Любопытно, если есть R-путь, который прост. Я мог бы итерации строк lookup_df
, а затем цикл через строки values_df
, но это не является эффективным с точки зрения вычислений. Я открыт для использования библиотеки dplyr
, если кто-то знает, как использовать ее для решения проблемы.
Brilliant, это должно аккуратно покрыть '<= index' требование. – thelatemail
Удивительный! Очень признателен. Я использую dplyr сильно, поэтому тот факт, что это не зависит от пакета data.table, является полезным. –