连接时间点在一个区间内的数据

时间:2017-04-10 13:14:41

标签: r lubridate

不介意看其他解决方案,但我也不明白为什么我得到不完整和错误的答案。 (润滑::间隔出错)

例如,del_time [1,]不在时间间隔[3,]中。目标是将“status”连接到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 个答案:

答案 0 :(得分:0)

解决方案是:

which_int <- x %within% interval(start = ymd_hms(y[[1]]), end =  ymd_hms(y[[2]]))

但是,我不介意其他解决方案。