A:修改列名,方法很多。可以使用renamefield, reindex2/ reindex,类SQL或者矩阵,其各类方法应用场景如下:
以下所有范例中的案例数据:
data:=select ['stockid'],['date'],['close'],['vol']
from markettable datekey 20181201T to 20181206T of 'SZ000002' end;
范例1:--单个列名的更改:将'date'更改为'日期'
//方法一:renamefield
renamefield(data,'date','日期');
return data;
//方法二:reindex
reindex(data,nil,array('date':'日期'));
return data;
范例2:--批量修改列名:修改为自增序列
//方法一:类SQL
return select selectopt(8)* from data end;
//注:该用法同时更改了行标为自增序列
//方法二:reindex2
return reindex2(data,0);
范例3:--批量修改列名:批量修改为指定列名
names:=array('代码','日期','收盘','成交量');
//方法一:矩阵重构
tmp:=nils(length(data),names);
tmp[:,:]:=data[:,:];
return tmp;
//方法二:reindex
//重点:需将names变成array('stockid':'代码','date':'日期','close':'收盘','vol':'成交量')
cArr:=mcols(data,1);
mc:=array();
for i:=0 to length(cArr)-1 do
mc[cArr[i]]:=names[i];
reindex(data,nil,mc);
return data;