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
代码还可以进一步的缩减。
|
|
|
|
还长了,再缩减一下
|
|
|
|
|
|
|
|
两个关键词参数
start
end
|
|
|
|
|
|
|
|
对分组后的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()
计算每个月的均值。
再看一个例子
|
|
滚动回归
|
|
|
|