微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 R 选择时间序列数据中的特定时期

如何解决使用 R 选择时间序列数据中的特定时期

我有一个数据文件,其中包含来自 70 个人的约 60,000 个观察结果。数据文件如下所示:数据文件示例datafile

我希望为每个人选择最后 5 分钟的数据。每个人都有不同数量的观察。有没有办法确定每个人的最后一次观察并选择前 5 分钟的数据?我使用下面的代码来识别前 5 分钟,但我不确定如何在最后 5 分钟内执行相同的操作。

#Set date and time format
df$DateTime=paste(df$Date,df$Time)
df$DateTime <- as.POSIXct(df$DateTime,format="%d/%m/%Y %H:%M:%s")

df$ID <- as.numeric(as.character(df$ID)) 
df$Value <- as.numeric(as.character(df$Value)) 


extract=df %>%
  group_by(ID,DateTime = cut(DateTime,breaks="5 min")) %>%
  summarize(Value=median(Value))

提前致谢!

解决方法

这应该过滤到每个人最后 5 分钟的观察结果。

df %>%
  group_by(ID) %>%
  mutate(last_time = max(DateTime)) %>%
  ungroup() %>%
  filter(DateTime >= last_time - 5*60)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。