Объединять разные файлы в соответствии с ближайшей разницей во времени - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь выяснить, как объединить два файла с разными частотами. Первый файл с интервалом в 1 секунду, файл1, как показано ниже,

 time1<-seq(from=as.POSIXct("2010-03-01 13:04:00"),to=as.POSIXct("2010-03-01   13:11:00"),by="1 sec")
 value1<-round(matrix(runif(2105,1,10),421,5),2)
 data1<-data.frame(time1,value1)
 data1

Второй файл с интервалом 5 минут и содержит другое время даты.

time2<-seq(from=as.POSIXct("2010-03-01 13:00"),to=as.POSIXct("2010-03-02 13:10"),by="5 min")
value2<-round(matrix(runif(873,1,10),291,3),2)
data2<-data.frame(time2,value2)
data2

Я хочу объединить два файла в соответствии с ближайшими временными точками на одну и ту же дату. Я попробовал следующие сценарии,

a <- as.numeric(time1)
b <- as.numeric(time2)
d <- function(a,b) abs(a-b) # define the distance function
idx <- sapply( a, function(a) which.min( d(a,b) )) # find matches
new_output <- cbind(data1, data2[idx,-1,drop=FALSE])
new_output

, но я также получил разницу во времени в первом столбце и пропустил информацию о дате и времени из данных2. Как удалить первый столбец разницы во времени и сохранить информацию из data2?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...