我能使用lubridate和%within%操作符在时间间隔内获取实例数量吗?

4
我正在尝试创建一种可视化方式,以显示某些前任/后继操作中有多少员工在24小时内打卡。
我创建了一个每两个小时为一组的实例向量。我将劳动记录表(打卡和下班)转换为间隔的数据框。当我使用%within%函数时,只会在我的向量的第一个实例返回T/F。
graph.instants <- seq( ymd("2014-05-12"), by= "2 hours", len= 120) #Make vector of instants in 2 hour intervals
ln205intervals <- data.frame(ints = interval(Frame206$LaborOn, Frame206$LaborOff)) #Make intervals with LN205 data

graph.instants %within% ln205intervals$ints

有没有一种方法可以将瞬间的向量与区间的向量进行比较?
这是我的问题图片: enter image description here

抱歉,Frame206是我们第206个生产单元中所有劳动时间间隔的数据框。 - Fairways_and_Greens
如果没有它,它就无法再现。此外,图像非常好,但最好您在代码中提供所需的输出。 - David Arenburg
David- Frame206数据框有600条记录。我应该将其截断为每个向量的前5个吗? - Fairways_and_Greens
1
很容易制作您自己的within函数:%within% <- function(x, interval) x >= interval[1] & x <= interval[2] - rawr
1个回答

1
作为备选方案,dplyr 定义了一个 between 函数来处理档案。
library(lubridate)
library(dplyr)

dat <- data.frame(time = seq( ymd("2015-01-01"), by= "2 hours", len= 1000))  

dat %>%  filter(between(time, ymd("2015-01-10"), ymd("2015-01-11")))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接