Я ищу помощь, потратив почти день. У меня есть большой фрейм данных (bdf) и небольшой фрейм данных (sdf). Я хочу добавить переменную z в bdf в зависимости от значения sdf $y (которое изменяется как функция переменной времени).
Вот пример воспроизводимости:
bdf <- data.frame(tb = seq(as.POSIXct("2013-05-19 17:11:22 GMT", tz="GMT"), by=5624*24, length.out=10))
bdf
                tb
1  2013-05-19 17:11:22
2  2013-05-21 06:40:58
3  2013-05-22 20:10:34
4  2013-05-24 09:40:10
5  2013-05-25 23:09:46
6  2013-05-27 12:39:22
7  2013-05-29 02:08:58
8  2013-05-30 15:38:34
9  2013-06-01 05:08:10
10 2013-06-02 18:37:46
sdf <- data.frame(ts = as.POSIXct(c("2013-05-22", "2013-05-25", "2013-05-30"), tz="GMT"), y = c(0.2, -0.1, 0.3))
> sdf
      ts    y
1 2013-05-22  0.2
2 2013-05-25 -0.1
3 2013-05-30  0.3
Я хочу создать переменную z в bdf со следующими значениями sdf $y:
-  0.2 для строк, где bdf $tb варьируется от первого значения bdf $tb до середины между 1-м и 2-м значением sdf $ts. В этом простом примере это относится к строкам с 1 по 3 из dbf, которые имеют время bdf $tb ниже "2013-05-23 12:00:00 GMT" . 
-  -0.1 для строк, где bdf $tb варьируется от середины между 1-м и 2-м значениями sdf $ts до середины между 2-м и 3-м значениями sdf $ts. В этом простом примере это относится к строкам 4 и 5 dbf, которые имеют время bdf $tb между "2013-05-23 12:00:00 GMT" и "2013-05-27 12:00:00 GMT",. 
-  0.3 для всех строк, где bdf $tb варьируется от середины между вторым и третьим значением sdf $ts до последнего значения bdf $tb. В этом простом примере это относится к строкам от 1 до 6 до 10 из dbf, которые имеют времена, превышающие "2013-05-23 12:00:00 GMT" . 
Следовательно, в конце, большой фрейм данных bdf должен выглядеть следующим образом:
                 tb    z
1  2013-05-19 17:11:22  0.2
2  2013-05-21 06:40:58  0.2
3  2013-05-22 20:10:34  0.2
4  2013-05-24 09:40:10 -0.1
5  2013-05-25 23:09:46 -0.1
6  2013-05-27 12:39:22  0.3
7  2013-05-29 02:08:58  0.3
8  2013-05-30 15:38:34  0.3
9  2013-06-01 05:08:10  0.3
10 2013-06-02 18:37:46  0.3
Я не смог бы использовать dplyr:: mutate и не получал нигде с помощью циклов... Любая помощь была бы высоко оценена. Надеюсь, что я четко описал проблему как придерживающуюся этикета (это мой первый вопрос).
