天软金融分析.NET函数大全 > TSL函数 > 基础函数 > 数组 > 数组操作

GroupTransformByFunc    

简述
计算分组排名,对数据表t按[GName]分组后,对每组的[Vname_]根据给定函数进行分组转换操作
不判断GName、VName 是否是T中的存在的字段名,以提高效率
只能用于数字列
定义
GroupTransformByFunc (t:array; GName:string; VName_:string; fp:String):array
参数
名称类型说明
tarray数组,待计算的数组
GNamestring字符串,分组字段名
VName_string 字符串或数组,转换字段名
如果Vname_为nil则表示除GName之外的所有字段
如果Vname_为一个数组,则表示需要去均值的字段组
fpString字符串(函数名)或函数指针,转换函数必须两个参数,分别表示当前的聚合字段与排名字段,以分组排名为例:
function (v,g);
begin
return rankof([v],[v]);
end;
返回array数组,VName为单个字段时,返回一维数组,VName 为数组时返回二维数据表
  • 范例

    T := array(("G":1,"V1":1,"V2":11,"V3":21),
         ("G":0,"V1":2,"V2":12,"V3":22),
         ("G":1,"V1":3,"V2":13,"V3":23),
         ("G":0,"V1":4,"V2":14,"V3":24),
         ("G":1,"V1":5,"V2":15,"V3":25),
         ("G":0,"V1":6,"V2":16,"V3":26));
    fp := function (v, g);
    begin

      return rankof([v],[v]);

    end
    return GroupTransformByFunc(T,'G','V1',fp); //array(3,3,2,2,1,1)
相关