У меня есть один фрейм данных df1
, который суммирует различную информацию (т.е. Depth
) сверхурочных (DateTime
). Например:
df1 <- data.frame(DateTime=c("2017-08-12 10:18:21.937","2017-08-12 11:43:56.937","2017-08-12 12:22:16.937","2017-08-12 13:24:43.937","2017-08-12 14:35:14.937","2017-08-12 15:48:28.937"),
Depth=c(24,12,35,54,13,32))
df1$DateTime <- as.POSIXct(df1$DateTime, format="%Y-%m-%d %H:%M:%OS", tz="UTC")
df1
df1
DateTime Depth
1 2017-08-12 10:18:21.937 24
2 2017-08-12 11:43:56.937 12
3 2017-08-12 12:22:16.937 35
4 2017-08-12 13:24:43.937 54
5 2017-08-12 14:35:14.937 13
6 2017-08-12 15:48:28.937 32
В другом фрейме данных df2
Я отфильтровал df1
и вычислил новый DateTime
(называемый DateTime2
) для оставшихся строк, получив два разных времени в df2
(DateTime
и DateTime2
). Вот пример того, что я получу:
df2 <- data.frame(DateTime=c("2017-08-12 11:43:56.937","2017-08-12 14:35:14.937"),
DateTime2=c("2017-08-12 11:41:48.337","2017-08-12 14:33:23.476"),
Depth=c(12,13))
df2$DateTime <- as.POSIXct(df2$DateTime, format="%Y-%m-%d %H:%M:%OS", tz="UTC")
df2$DateTime2 <- as.POSIXct(df2$DateTime2, format="%Y-%m-%d %H:%M:%OS", tz="UTC")
df2
DateTime DateTime2 Depth
1 2017-08-12 11:43:56.937 2017-08-12 11:41:48.336 12
2 2017-08-12 14:35:14.937 2017-08-12 14:33:23.476 13
Я хочу изменить DateTime
в df1
для строк, в которых df1$DateTime
и df2$DateTime
совпадают, и изменить значение df1$DateTime
для df2$DateTime2
. Я также хочу вычесть 60 секунд для остальных строк, для которых df1$DateTime
и df2$DateTime
не совпадают. Я бы ожидал этого:
df1
DateTime Depth
1 2017-08-12 10:17:21.937 24
2 2017-08-12 11:41:48.336 12
3 2017-08-12 12:21:16.937 35
4 2017-08-12 13:23:43.937 54
5 2017-08-12 14:33:23.476 13
6 2017-08-12 15:47:28.937 32
Кто-нибудь знает, как это сделать?
Спасибо !!