eoq(ts_data) # get the last observation at every quarter
# 4x1 Temporal.TS{Float64,Date}: 2016-09-30 to 2017-06-30
# Index RandomWalk
# 2016-09-30 88.5629
# 2016-12-31 82.1014
# 2017-03-31 84.9065
# 2017-06-30 92.1997
也可以使用函数来按照上面给出的相同类型的周期来聚合数据 .
collapse(ts_data, eoq, fun=mean) # get the average value every quarter
# 4x1 Temporal.TS{Float64,Date}: 2016-09-30 to 2017-06-30
# Index RandomWalk
# 2016-09-30 92.5282
# 2016-12-31 86.8291
# 2017-03-31 89.1391
# 2017-06-30 90.3982
3 回答
仅使用Base.range的可选步骤功能与Datetime.Period类型组合使用
并根据需要更改步骤
0.3. x vs 0.4.x.
在版本0.3.x中日期包含Dates提供模块 Dates ,但在版本0.4.x中,模块 Dates 是内置的 . 另外(当前)另一个细微差别是 Year 和 Month 必须作为 Dates.Year 和 Dates.Month 访问在版本0.4.x.
我知道这个问题有点旧,但值得补充的是,还有另一个名为Temporal *的时间序列包,它具有此功能 .
以下是一些示例用法:
构造时间序列对象(类型
TS
) . 最后一个参数用于列名,但如果没有给出,则会自动生成默认列名 .获取每个季度的最后一次观察(类似的逻辑分别使用
eow
,eom
和eoy
存在数周,数月和数年):也可以使用函数来按照上面给出的相同类型的周期来聚合数据 .
*(免责声明:我是包裹作者 . )
尚未支持季度,但支持其他时间段,如周,月和年 . 有一种名为
collapse
的方法,用于将TimeArray转换为更大的时间范围 .返回以下内容
此外,请注意
date
已被弃用,而不是Date
,因为新的更新包现在运行下面的日期/时间函数 .