Первый df содержит значения температурных измерений, проводимых каждые 30 минут в течение двух месяцев датчиками в разных местах. Выглядит примерно так:Подмножество данных с помощью значений datetime (POSIXlt) с использованием значений datetime (POSIXtl) из другого фрейма данных в R
date_time id Temp
2012-02-27 00:11:00 | Sens_1 | 23.0
2012-02-27 00:11:30 | Sens_1 | 23.4
2012-02-27 00:12:00 | Sens_1 | 24.6
2012-02-27 00:12:30 | Sens_1 | 25.2
2012-02-27 00:13:00 | Sens_1 | 25.5
2012-02-27 00:13:30 | Sens_1 | 26.3
: : :
2012-02-27 00:11:00 | Sens_2 | 34.6
2012-02-27 00:11:30 | Sens_2 | 33.4
2012-02-27 00:12:00 | Sens_2 | 34.6
2012-02-27 00:12:30 | Sens_2 | 35.4
2012-02-27 00:13:00 | Sens_2 | 36.5
2012-02-27 00:13:30 | Sens_2 | 38.8
: : :
2012-02-27 00:11:00 | Sens_3 | 14.6
2012-02-27 00:11:30 | Sens_3 | 14.4
2012-02-27 00:12:00 | Sens_3 | 13.6
2012-02-27 00:12:30 | Sens_3 | 15.4
2012-02-27 00:13:00 | Sens_3 | 15.5
2012-02-27 00:13:30 | Sens_3 | 16.8
: : :
Второй DF имеет только один столбец со значениями даты и времени, которые были отфильтрованы ранее в связи с другими ограничениями и поэтому имеют только часть значений даты и времени. Например:
date_time
2012-02-27 00:11:00
2012-02-27 00:12:00
2012-02-27 00:12:30
2012-02-27 00:13:30
:
То, что я хочу, чтобы получить что-то вроде этого:
date_time id Temp
2012-02-27 00:11:00 | Sens_1 | 23.0
2012-02-27 00:12:00 | Sens_1 | 24.6
2012-02-27 00:12:30 | Sens_1 | 25.2
2012-02-27 00:13:30 | Sens_1 | 26.3
: : :
2012-02-27 00:11:00 | Sens_2 | 34.6
2012-02-27 00:12:00 | Sens_2 | 34.6
2012-02-27 00:12:30 | Sens_2 | 35.4
2012-02-27 00:13:30 | Sens_2 | 38.8
: : :
2012-02-27 00:11:00 | Sens_3 | 14.6
2012-02-27 00:12:00 | Sens_3 | 13.6
2012-02-27 00:12:30 | Sens_3 | 15.4
2012-02-27 00:13:30 | Sens_3 | 16.8
: : :
Заранее спасибо за любую помощь.
'merge (df1, df2)' – Gregor
'do.call (rbind, lapply (split (df1, df1 $ id), function (x) x [x $ date_time% in% df2 $ date_time,]))' –
Спасибо за ваши быстрые ответы db отвечает хорошо работает @Gregor: 'merge' не работает и выбрасывает эту ошибку: Ошибка в sort.list (bx [m $ xi]): 'x' должен быть атомарным для ' sort.list ' Вы назвали' sort 'в списке? Это должно произойти, когда данные не являются data.frame, а списком. Я попробовал 'str' в обоих df и сказал следующее: 'str (sens) ' data.frame ': \t 3342 obs. из 3 var $ id: chr "Sens_1" .. $ fechahora: POSIXlt, формат: "2014-01-01 00:00:00" .. $ valor: num 22.3 .. ' – NewUser