我正在做一个关于一些价格数据的项目,我希望使用aj来填补天,当我缺少一个平均价格与最后交易时的价格。
我在aj中使用同一个表格两次,试图填补空白。然而,它并没有像我想象的那样填充。
您能建议我在下面的简化例子中哪里出错了吗?
西蒙
tt:([]t:1998.01.02 1998.01.03 1998.01.04 1998.01.05 1998.01.06 1998.01.07 1998.01.09;
r:`COSC.SI`COSC.SI`COSC.SI`COSC.SI`COSC.SI`COSC.SI`COSC.SI;
p:(0.9;0n;0n;0n;0.8;0.7473684;0.7195));
qt:([]t:1998.01.02 1998.01.03 1998.01.04 1998.01.05 1998.01.06 1998.01.07 1998.01.09;
r:`COSC.SI`COSC.SI`COSC.SI`COSC.SI`COSC.SI`COSC.SI`COSC.SI;
q:(0.9;0n;0n;0n;0.8;0.7473684;0.7195));
aj[`r`t;tt;qt]
得到了。
t r p q
--------------------------------------
1998.01.02 COSC.SI 0.9 0.9
1998.01.03 COSC.SI
1998.01.04 COSC.SI
1998.01.05 COSC.SI
1998.01.06 COSC.SI 0.8 0.8
1998.01.07 COSC.SI 0.7473684 0.7473684
1998.01.09 COSC.SI 0.7195 0.7195
预期。
t r p q
--------------------------------------
1998.01.02 COSC.SI 0.9 0.9
1998.01.03 COSC.SI 0.9 0.9
1998.01.04 COSC.SI 0.9 0.9
1998.01.05 COSC.SI 0.9 0.9
1998.01.06 COSC.SI 0.8 0.8
1998.01.07 COSC.SI 0.7473684 0.7473684
1998.01.09 COSC.SI 0.7195 0.7195
你应该使用 fills
操作符,用最近的值替换空值。语句
fills tt
将填满所有的列。要明确指定列,请使用。
update fills p from tt
Separately. aj
的方式工作,因为空值不会被从 qt
表,因此,空q值加入空p值。因此,null q值会和null p值连接起来。如果你过滤空值,你会得到你期望的结果。
aj[`r`t;tt;delete from qt where null q]
但这并不是用最近的值来填补空白的最好方法。