tibbletime是Business Science团队推出的一款与tidyverse框架完美契合的时序数据包。tibbletime提供了一种新的时序数据类型——tbl_time,其继承了R中数据框的data.frame类以及tibble包中的tbl_df类,与dplyr这一数据处理利器完美契合。同时,tibbletime还提供了一系列强大的函数用以处理tbl_time类型的数据。tibbletime包的作者这样介绍其优势:
filter_time()函数:简洁的切片操作collapse_index()函数:根据时间(例如年、月、每两周等)对索引列进行分割,进而利用dplyr包的分组函数计算汇总数据as_period()函数:改变一个time tibble的时间间隔,让日数据变为周数据/月数据更为简单rolliyf()函数:滚动分析create_series()函数:快捷地创建tbl_time类型的时序数据- 索引列完美支持
Date和POSIXct类型,初步支持yearmon,yearqtr和hms类型。
|
|
下面将通过实例来展示tibbletime的强大。
|
|
tibbletime操作
|
|
|
|
将常规的数据框转化为tbl_time
|
|
|
|
|
|
对tbl_time对象切片
filter_time()函数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
利用dplyr独立完成这一操作的代码如下:
|
|
|
|
可以看到,代码量增加了很多。
|
|
|
|
当然,利用tibbletime代码还可以进一步的缩减。
|
|
|
|
还长了,再缩减一下
|
|
|
|
|
|
|
|
两个关键词参数
startend
|
|
|
|
|
|
|
|
对分组后的tbl_time对象进行取子集操作
|
|
根据分钟/秒来提取子集
|
|
除了使用filter_time()函数进行取子集操作外,tibbletime还支持常规的[操作。
|
|
|
|
|
|
|
|
利用filter_time()函数进行编程
|
|
|
|
对tbl_time对象进行高频转低频
as_period()函数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
滚动计算
rollify()函数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
创建tbl_time对象
create_series()函数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
分组操作
collapse_index()函数
|
|
|
|
|
|
来看下collpase_index()函数究竟做了什么:
|
|
|
|
很明显,collpase_index()函数创建了一个同FB_tbl_time行数相同的时间列,然后dplyr中的group_by()函数根据
这一列进行分组,最后通过聚合函数mean()计算每个月的均值。
再看一个例子
|
|
滚动回归
|
|
|
|