如何解决使用 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 举报,一经查实,本站将立刻删除。