【问题标题】:Can I use lubridate to get a number of instances within intervals using %within%?我可以使用 lubridate 在使用 %within% 的时间间隔内获取多个实例吗?
【发布时间】:2014-08-28 19:13:59
【问题描述】:

我正在尝试创建一个可视化,显示一些前任/后继操作,有多少员工通过 24 小时制打卡。

我创建了一个实例向量,它们相隔两个小时。我将劳动记录表(上班和下班)转换为间隔的 data.frame。当我使用 %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

有没有办法检查瞬间向量和间隔向量?

这是我的问题的图片:

【问题讨论】:

  • 抱歉,Frame206 是我们第 206 个生产单元的所有劳动间隔的数据框。
  • 没有它就无法重现。此外,图像非常漂亮,但最好在代码中提供所需的输出
  • David- Frame206 数据框有 600 条记录。我应该将它截断到每个向量的前 5 个左右吗?
  • 很容易让你的内部函数:%within% &lt;- function(x, interval) x &gt;= interval[1] &amp; x &lt;= interval[2]

标签: r lubridate


【解决方案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")))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    • 2018-02-14
    • 1970-01-01
    • 2018-08-20
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多