r - 使用相同的引用比较组内的日期

标签 r datetime dataframe compare

我有一个不同患者的数据表(“Spell”)和每个患者(“Episode”)的几个温度(“Temp”)测量值。我也有测量每个温度的日期和时间。

Spell Episode         Date    Temp
 1       3       2-1-17 21:00   40
 1       2       2-1-17 20:00   36
 1       1       1-1-17 10:00   37
 2       3       2-1-17 15:00   36
 2       2       2-1-17 10:00   37
 2       1       1-1-17 8:00    36
 3       1       3-1-17 10:00   40
 4       3       4-1-17 15:00   36
 4       2       3-1-17 12:00   40
 4       1       3-1-17 10:00   39
 5       7       3-1-17 17:30   36
 5       6       2-1-17 17:00   36
 5       5       2-1-17 16:00   37
 5       1       1-1-17 9:00    36
 5       4       1-1-17 14:00   39
 5       3       1-1-17 13:00   40
 5       2       1-1-17 11:00   39

我有兴趣在最后一次测量之前 24 小时完成所有测量,我已按拼写和反向日期对观察进行分组,但我不确定如何使用相同的引用进行组内比较(在这种情况下,每组的第一行)。结果应该是:
    Spell Episode         Date    Temp
 1       3       2-1-17 21:00   40
 1       2       2-1-17 20:00   36
 2       3       2-1-17 15:00   36
 2       2       2-1-17 10:00   37
 3       1       3-1-17 10:00   40
 4       3       4-1-17 15:00   36
 5       7       3-1-17 17:30   36

将不胜感激任何为我指明正确方向的想法。

编辑:日期采用 d-m-yy H:M 格式。这是来自数据的 dput:
structure(list(Spell = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 4L, 4L, 
4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), Episode = c(3L, 2L, 1L, 3L, 
2L, 1L, 1L, 3L, 2L, 1L, 7L, 6L, 5L, 1L, 4L, 3L, 2L), Date = c("2-1-17 21:00", 
"2-1-17 20:00", "1-1-17 10:00", "2-1-17 15:00", "2-1-17 10:00", 
"1-1-17 8:00", "3-1-17 10:00", "4-1-17 15:00", "3-1-17 12:00", 
"3-1-17 10:00", "3-1-17 17:30", "2-1-17 17:00", "2-1-17 16:00", 
"1-1-17 9:00", "1-1-17 14:00", "1-1-17 13:00", "1-1-17 11:00"
), Temp = c(40L, 36L, 37L, 36L, 37L, 36L, 40L, 36L, 40L, 39L, 
36L, 36L, 37L, 36L, 39L, 40L, 39L)), .Names = c("Spell", "Episode", 
"Date", "Temp"), class = c("data.table", "data.frame"), row.names = c(NA, 
-17L), .internal.selfref = <pointer: 0x00000000001f0788>)

最佳答案

library(dplyr)

df %>% 
  mutate(Date2 = as.numeric(strptime(df$Date, "%d-%m-%Y %H:%M"))) %>% 
  group_by(Spell) %>% 
  filter(Date2 >= (max(Date2) - 60*60*24)) %>%
  select(-Date2)

关于r - 使用相同的引用比较组内的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45302240/

相关文章:

python - 如何更改重采样列的名称?

Python:将datedelta转换为时差的int值

r - write.csv() 和 as.data.frame() 的问题

r - 两组点之间的距离

r - 将 lapply 与股票代码列表一起使用

PHP,代码点火器 : How to Set Date/Time based on users timezone/location globally in a web app?

r - 将嵌套的 JSON 文件转换为 R 数据帧

pandas - 如何通过数据框中的数据计算频率?

r - 使用 ggplot 按组为多个变量创建点图

r - ggplot2 位置 ='dodge' 生成的条太宽