FAQ > 金融建模 > 应用案例 > 数据处理

Q:如何将数组转成按某一列的值作为列标的数据    

  • A:实现:将相同截止日的数据放到同一行中,不同行业作为列标,值作为元素内容
     r:=array(
    ("截止日":"2024-08-01","行业":"A","值":0),
    ("截止日":"2024-08-01","行业":"B","值":1),
    ("截止日":"2024-08-01","行业":"C","值":2),
    ("截止日":"2024-08-02","行业":"A","值":1),
    ("截止日":"2024-08-02","行业":"B","值":2),
    ("截止日":"2024-08-02","行业":"C","值":3),
    ("截止日":"2024-08-03","行业":"A","值":2),
    ("截止日":"2024-08-03","行业":"B","值":3),
    ("截止日":"2024-08-03","行业":"C","值":4),
    );

    sName:="行业";//该列作为列名
    vName:="值";//该列作为对应指标值
    rt:=array();//重构
    for i:=0 to length(r)-1 do
     rt[r[i,"截止日"],r[i,sName]]:=r[i,vName];
    //--将截止日列作为第一列数据,并将行下标更改为数字下标,若不需要,则可注释掉
    rt:=select thisRowIndex as "截止日",* from rt order by thisRowIndex end;
    rt:= ReIndex2(rt,1);
    return rt;

    转换前->转换后: