【发布时间】:2020-07-17 16:25:48
【问题描述】:
我有一个以(日期、符号、符号类型、因子、权重)为列的内存表。
在某些情况下,此内存中的表曾经针对特定日期范围进行查询,但会丢失整个日期。可能是今天的数据,或者如果我们要查询多个日期,可能是中间的一天,也可能是多天,或者是最后一个日期,或者是开始。
我怎样才能想出一个查询来填充那些缺失的日期以及截至该点的最大日期?
所以如果我们有如下数据: 例子:
.z.D
.z.D-2
.z.D-3
.z.D-6
.z.D-7
我希望表格如下所示:
.z.D -> .z.D
.z.D-1 -> copy of .z.D-2
.z.D-2 -> .z.D-2
.z.D-3 -> .z.D-3
.z.D-4 -> copy of .z.D-6
.z.D-5 -> copy .z.d-6
.z.D-6 -> .z.D-6
.z.D-7 -> .z.D-7
如果您的查询中缺少今天,请使用以前的可用日期作为今天。 如果在您的查询中最后一天是昨天并且它丢失了,则使用前一个可用日期作为昨天,依此类推。 如果您的最后一个(最短日期)缺失,请向上使用下一个可用日期。
我可以通过识别缺失的日期并逐日查看缺失的日期来手动执行此操作,但我想知道是否有更好的方法来执行此操作。
aj 可以通过构造 ([] date: listofdesireddates) cross ([] sym: listofsyms) cross ([] sector: symtype) 来处理中间日期,然后对表格执行 aj 但它没有解决所有情况,例如错过的日期是今天还是开始时。
【问题讨论】:
标签: kdb