我想将 TimeSerie 重新采样到更大的时间粒度。在以下条件下,我不确定在 Deedle 中哪个是最好的方法。
假设我有一个从 2014-03-15 到 2014-09-15 的每日时间序列,生成如下:
var startDate = DateTime.Parse('2014-03-15');
var daily = Enumerable.Range(0, 60)
.Select(x => KeyValue.Create(startDate.AddDays(x), 15.03))
.Concat(Enumerable.Range(120, 60)
.Select(x => KeyValue.Create(startDate.AddDays(x), 15.03)))
.ToSeries();
这(或多或少)转化为从 2014 年 3 月 15 日到 2014 年 5 月 15 日的每日时间序列连续体,然后失踪,然后是 2014 年 7 月 15 日到 2014 年 9 月 15 日的连续体。
我想将其汇总为每月时间序列,包括从 2014 年 3 月到 2014 年 9 月,作为下划线的平均值。考虑到它是一个排序的系列,我想避免昂贵的 GroupBy 并使用 Sampling 函数。
我最好的解决方案是:
var monthly = daily.ResampleEquivalence(x => x.FirstDayOfTheMonth(), s => s.Mean());
这将返回一个系列,正确,但缺少关键 2014-06 的数据。
我想使用 ResampleUniform 但在 c# 中没有提供带有回调函数的重载来计算平均值......
关于如何在 C# 中模拟 F# resampleUniformInto 的任何建议?