У меня есть следующие 2 фрейма данных:
Dataframe1 <- data.frame(Time = seq(as.POSIXct("2017-09-06 4:30:00"), as.POSIXct("2017-09-08 15:00:15"), by = "15 min"))
Dataframe2 <- data.frame(Start_Date = as.POSIXct(c("2017-09-07 4:32:00", "2017-09-07 13:02:00", "2017-09-08 10:20:00")), End_Date = as.POSIXct(c("2017-09-07 7:20:00", "2017-09-07 17:46:00", "2017-09-08 13:41:00")))
Я хочу создать в Dataframe1
(Dataframe1$New_Column
) новый столбец класса "logical"
.Если значения в Dataframe1$Time
находятся между датами начала и окончания (то есть, если они находятся между двумя датами в каждой строке Dataframe2
), Dataframe1$New_Column
будет TRUE
, а если нет, Dataframe1$New_Column
будет FALSE
.Результат должен выглядеть следующим образом:
Dataframe1$New_Column <- TRUE
Dataframe1$New_Column[which(Dataframe1$Time > Dataframe2$Start_Date[1] & Dataframe1$Time< Dataframe2$End_Date[1])] <- F
Dataframe1$New_Column[which(Dataframe1$Time > Dataframe2$Start_Date[2] & Dataframe1$Time< Dataframe2$End_Date[2])] <- F
Dataframe1$New_Column[which(Dataframe1$Time > Dataframe2$Start_Date[3] & Dataframe1$Time< Dataframe2$End_Date[3])] <- F
View(Dataframe1)
Какой эффективный способ сделать это с использованием базовых функций R?
Спасибо!