Объединение данных, где время находится в пределах интервала
Не хотел бы видеть другие решения, но я также не понимаю, почему я получаю неполный и неправильный ответ. (смазывать:: интервал становится неправильным)
Например, del_time[1,] не находится в интервале времени [3,]. Цель состоит в том, чтобы присоединить "статус" к del_time, где время находится в интервале.
Пример данных:
library(lubridate)
library(dplyr)
ti <- now()
times <- tibble(time1 = c(ti + 3600, ti + 7200, ti + 10800, ti + 14000),
time2 = time1 + 3599, status = c("One", "Two", "Three", "Four"))
del_time <- tibble(time = times$time1 + 1750)
Код:
FUN1 <- function(x,y){
x <- ymd_hms(x)
which_int <- x %within% interval(start = y[[1]], end = y[[2]])
out <- as.character(y[which_int, 3])
return(out)
}
del_time$status <- apply(del_time[, 1], 1, FUN1, y = times)
del_time
1 ответ
Решение:
which_int <- x %within% interval(start = ymd_hms(y[[1]]), end = ymd_hms(y[[2]]))
Однако я бы не отказался от альтернативных решений.