如何在 R (ITime) 中过滤时间?

How do I filter Time in R (ITime)?

我有这个血压数据集。

date time systole diastole Pulse
2020-12-04 07:38:00 117 83 65
2020-12-04 07:39:00 121 86 60

时间格式为<S3:ITime>.

我想过滤特定时间跨度内的所有收缩期和舒张期值。例如,从 06:00:00 到 09:00:00 的所有收缩期和舒张期值都与日期无关。

到目前为止我尝试过的:

   filter(bp,Time<08:00:00|Time>06:00:00)

   select(bp$Time<08:00:00|bp$Time>06:00:00)

我收到类似“数值表达式只有 9 个元素并且只使用了第一个元素”这样的错误。我不知道那是什么意思。

是因为dplyr不适合我的时间格式吗?

ITime 来自 data.table 包。在 06:00:0009:00:00 之间的 select 行你可以做到。

library(data.table)
result <- setDT(bp)[between(time, as.ITime('06:00:00'), as.ITime('09:00:00'))]