indexedSeries

语法

indexedSeries(index, value)

参数

indexvalue 为等长向量。index 须严格递增,无重复项。

详情

创建一个有索引的序列。

索引序列支持面板数据对齐运算。普通矩阵或向量进行二元运算时,按照对应元素分别进行计算,需要保持维度(shape)一致。而索引序列之间,索引序列与索引矩阵之间,进行二元运算时,根据行列标签(index)自动对齐,对维度没有硬性要求。

支持的二元操作包括:

(1) 算术运算符和函数:+, -, *, /(整除), (ratio), %(mod), pow

(2) 逻辑运算符和函数:<, <=, >, >=, ==, !=, <>, &&, ||, &, |, ^

(3) 滑动窗口函数:mwavg, mwsum, mbeta, mcorr, mcovar

(4) 累计窗口函数:cumwavg, cumwsum, cumbeta, cumcorr, cumcovar

(5) 聚合函数:wavg, wsum, beta, corr, covar

例子

例1. 索引序列之间的运算,长度可以相等或者不等,根据索引对齐。

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
col1
2011.12.30
2011.12.31
2012.01.01 80
2012.01.02
2012.01.03
2012.01.04

例2. 索引序列和向量之间运算,长度必须相等。

s1 = indexedSeries(2012.01.01..2012.01.04, [10, 20, 30, 40])
v = [1,2,3,4]
res = s1+v
col1
2012.01.01 11
2012.01.02 22
2012.01.03 33
2012.01.04 44

例3. 索引序列和索引矩阵进行运算时,根据索引对齐。

s1 = indexedSeries(2012.01.01 2012.01.03 2012.01.04 2012.01.06, [10, 20, 30, 40])
m = matrix(1..6, 11..16).rename!(2012.01.01..2012.01.06,`x`y).setIndexedMatrix!()
s1 + m
IBM MSFT
2012.01.01 11 21
2012.01.02
2012.01.03 23 33
2012.01.04 34 44
2012.01.05
2012.01.06 46 56

例4. 索引序列与没有设置索引的矩阵进行运算,长度必须相等。

s1 = indexedSeries(2012.01.01..2012.01.04, [10, 20, 30, 40])
m = matrix([1,1,1,1], [2,2,2,2])
res = s1 pow m
col1 col2
10 100
20 400
30 900
40 1,600