索引矩阵运算时如果index不对齐如何保留数据

根据教程,索引矩阵相加时,根据index对齐,如果index不存在,则置为NULL,比如教程中的:

s1 = indexedSeries(2012.01.01..2012.01.04, [10, 20, 30, 40])
s2 = indexedSeries(2011.12.30..2012.01.01, [50, 60, 70])
res = s1 + s2

这个例子里面,因为只有,2012.01.01,这个索引可以对齐,相加的数据是,80,其他结果全是空

但是我现在想要实现的是,保留其他索引的数据,比如结果里面,2011.12.30 的结果跟s2的相同,是50


请先 登录 后评论

2 个回答

Feng Gao

可以使用, withNullFill 函数做缺省值填充,代码改成下面的就可以了:

res = withNullFill(+, s1, s2, 0)

函数内容参考:

https://dolphindb.cn/cn/help/200/Functionalprogramming/TemplateFunctions/withNullFill.html

请先 登录 后评论
Polly

可以先使用 align 函数对齐索引序列。由于 DolphinDB 中加法运算若包含空值计算结果为空,则可以先将空值填充为 0 再进行计算。

脚本如下:

s1 = indexedSeries(2012.01.01..2012.01.04, [10, 20, 30, 40])
s2 = indexedSeries(2011.12.30..2012.01.01, [50, 60, 70])
as1, as2 = align(s1, s2, 'outer', true)
as1 = nullFill(as1, 0)
as2 = nullFill(as2, 0)
res = as1+ as2

//output
           #0
           --
2011.12.30|50
2011.12.31|60
2012.01.01|80
2012.01.02|20
2012.01.03|30
2012.01.04|40
请先 登录 后评论
  • 2 关注
  • 0 收藏,679 浏览
  • dongmange 提出于 2023-04-27 17:49

相似问题