使用lubridate包在r中创建间隔对象

时间:2019-01-06 21:20:40

标签: r database time intervals lubridate

嗨,我有来自uber的数据: enter image description here

关于纽约市的接载。 我试图在原始数据中添加一列,以指示每一行的 它属于哪个时间间隔(由时间间隔开始处的单个时间点表示)。

我想创建一个包含所有相关时间点(即每15分钟一次)的向量 在此向量上使用lubridate软件包中的int_diff函数可创建一个 间隔对象。  对原始数据中的所有时间点以及每个数据运行一个循环 点;指示到哪个间隔(由单个 属于时间间隔开始的时间点)。

我试图寻找有关如何使用int_diff函数的解释,但我不理解向量的外观以及int_diff的语法如何工作  坦克寻求帮助:)

1 个答案:

答案 0 :(得分:0)

这是您的主意吗?

start <- mdy_hm('4/11/2014 0:00') # start of the period
end <- mdy_hm('5/12/2015 0:00') # end
time_seq <- seq(from = start, to = end, by = '15 mins') # sequence by 15 minutes

times <- mdy_hm(c('4/11/2014 0:12', '4/11/2014 1:24')) # times to find intervals for
dat <- data.frame(times)

dat$intervals <- cut(times, breaks = time_seq) # assign each time to an interval

intervals_cols <- model.matrix(~ - + intervals, dat) # turn this into a set of columns, one for each interval, with a 1 indicating that this observation falls into the column