问题描述
我有这个血压数据集。
日期 | 时间 | 收缩 | 舒张期 | 脉冲 |
---|---|---|---|---|
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:00
到 09:00:00
之间的行,您可以这样做。
library(data.table)
result <- setDT(bp)[between(time,as.ITime('06:00:00'),as.ITime('09:00:00'))]