TSL语言基础 > TSL语言基础 > 矩阵与函数 > 基础统计函数对二维数组的处理

基础统计函数的错误数据处理    

  •   和abs这类函数不同,基础统计函数默认是允许有nil值的,例如
      A:=array(1,2,3,nil,4);
      B:=array(1,2,3,"ABCD",4);
      C:=Mean(A);
      D:=Mean(B);
      C的结果为2.5,但Mean(B)会报错。
      如果要允许跳过错误的数据,我们可以这么写:D:=Mean(B,false,0,nil,1);
      如果我们要让存在NIL的值也报错,则使用:
      C:=Mean(A,false,0,nil,2);
      这个附加的第四个参数为错误数据处理,其低二位允许为三种值:0,1,2
      0表示允许NIL,1表示允许跳过错误值,2表示不允许NIL和错误值
      在做移动平均的时候,存在这样的问题:
      假如前边存在有错误值/NIL值,到底移动的N是将其计算在内还是不计算在内呢?
      其现实意义为:假定非交易日的值为NIL,在移动平均的时候是计算自然日内的平均还是交易日内的平均呢?
      我们可以举一个例子:
      A:=Array(1,2,3,NIL,4,5);
      B:=Mean(A,false,3);
      
      从4,5下标行来看,我们在默认情况是将NIL计算在移动的3日内的
      在下标4移动3日的内容为:4,NIL,3,其均值为3.5
      下标5移动3日的内容为:5,4,NIL,其均值为4.5

      如果我们希望在移动的时候跳过那些错误的值:C:=Mean(A,false,3,nil,4);
      
      这样,下标4移动的值为4,3,2其均值为3
      下标5的移动的值为5,4,3其均值为4
      也就是说第4个附加参数
      为4的时候是跳过NIL值