首页 > 解决方案 > 如何自动为时间序列数据中的每一天创建一个子集

问题描述

我从传感器收集了数据,需要自动将数据拆分为 1 天的数据帧。

这就是我的数据的样子:

2   2021-10-20 20:17:14 151 -135.9  8.304   -339.5  8.175   23.13232    78.95514    97.10153
3   2021-10-20 20:27:15 152 -136.9  8.302   -340.6  8.175   23.89337    86.71063    98.07861
4   2021-10-20 20:37:15 153 -138.2  8.302   -340.5  8.177   23.00682    80.71004    96.15726
5   2021-10-20 20:47:16 154 -138.8  8.302   -341.0  8.176   23.76786    83.38557    98.30032 

我使用 tibbletime 和 dplyr 来获取 tbl_time 对象。

到目前为止,我能够为第 1 天创建一个子集,并且手动为第 2 天和第 3 天等创建一个子集很容易。最后我将拥有一年的数据,所以这将是一个痛苦的事情手动。

这是我使用的代码行:

day1<- filter_time(bio2_table, time_formula = '2021-10-20' ~ '2021-10-20')

我是菜鸟,但我仍然想相信有一种方法可以让 r 自己完成所有工作。

谢谢!

标签: rdatetimetime-series

解决方案


您的日期对象是什么数据类型?

第一步是获取正确的日期格式,然后您可以 group_split() 获取数据框列表,每个数据框代表一个特定的日期。

如果对这种方法感兴趣,您可以查看 setNames() 函数来命名每个数据框。


data %>%
  mutate(date = as.Date(format(date, "%y-%m-%d")))%>%
  group_split(date)


推荐阅读