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

问题描述

我有这个血压数据集。

日期 时间 收缩 舒张期 脉冲
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 之间的行,您可以这样做。

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