R代码计算固定长度的连续时间-windows中值的中值

R code to calculate median of values in consecutive time-windows of fixed length

我有脉搏血氧仪值的数据集。连续 20 分钟一节。我想计算每 6 小时连续 window 的中值。 windows 不会重叠,因此这不是滚动中位数计算。 R 代码有效执行此操作的任何提示?整个数据集是多个病人和几天的数据;大约 100 万行。

tidyverse 的 lubridate 库非常有用。您可以使用 floor_date 函数找到 6 小时的纪元。

library(dplyr)
library(lubridate)

df<-tibble::tribble(
  ~date_time, ~pulse_ox,
  "1/1/21 11:21.21",       97,
  "1/2/21 11:34.34",       89
)

df_new<-df %>%
  mutate(date_time_6_hour=floor_date(dmy_hms(date_time),"6 hours")) %>%
  group_by(date_time_6_hour) %>%
  summarize(median=median(pulse_ox))