Я использую R для извлечения данных из истории процессов с помощью SQL. У меня есть два кадра данных: один из весов нетто (NetWt
) с отметками времени (100 строк), а другой - с заданными значениями веса (SetPt
) с отметками времени (6 строк). Заданное значение изменяется нечасто, но новый вес мешка записывается каждые 30 секунд. Мне нужно вычесть два, чтобы получить результирующий кадр данных NetWt - SetPt
для каждой метки времени в NetWt
. В моем последнем наборе данных самая последняя временная метка SetPt
раньше, чем первая временная метка NetWt
. Мне нужна функция, которая будет проходить через каждую строку в NetWt
, брать временную метку, искать ближайшую временную метку до этого времени в кадре данных SetPt
, возвращать самые последние SetPt
и выводить разницу (NetWt-SetPt
).
Я исследовал merge
, rbind
, cbind
и не могу найти функцию для поиска в обратном направлении самого последнего значения SetPt
и объединения его с NetWt
, чтобы я мог вычесть их, чтобы построить график разницы во времени. Кто-нибудь может помочь?
Данные:
SetPtLines <- "Value,DateTime
51.35,2014-02-10 08:10:49
53.30,2014-02-10 07:52:37
53.10,2014-02-10 07:52:19
51.70,2014-02-10 07:50:26
51.35,2014-02-09 19:25:21
51.40,2014-02-09 19:13:11
51.50,2014-02-09 18:24:53
51.45,2014-02-09 16:10:38
51.40,2014-02-09 15:54:42"
SetPt <- read.csv(text=SetPtLines, header=TRUE)
NetWtLines <- "DateTime,Value
2014-02-11 12:51:50,50.90735
2014-02-11 12:52:24,50.22308
2014-02-11 12:52:55,50.88604
2014-02-11 12:53:27,50.69514
2014-02-11 12:53:58,51.38968
2014-02-11 12:54:29,50.96672"
NetWt <- read.csv(text=NetWtLines, header=TRUE)
В NetWt
100 строк.
roll="nearest"
вdata.table
- person Ricardo Saporta   schedule 12.02.2014