如何将表读入列表?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />假设我有一个表“dt”,其中列名毫无意义。
我有一个表“dt_source”,有两列 - 一列无意义的名称,另一列有相应的有意义的名称。
我正在尝试编写一个脚本,将列从无意义重命名为有意义。
列可能不同,因此我将创建一个具有相应值的主表“dt_source”。
现在我已经准备好了一个脚本,它从脚本的列表中获取无意义和倾斜的名称,并重命名每对的列(如果存在这种无意义的名称)。
我希望能够获取那些不在列表中输入的对应对:
name_in={"col1", "col2"};
name_out={"年龄", "身高")
但从一张桌子上。
如何将 dt_name_source 读入两个列表:name_in 和 name_out?
到目前为止我有这个:
名称默认为此处( 1 ) ;
尝试( dt_源=数据表( “更改名称.jmp” ) ,扔( “尝试打开数据表” )) ;
如果(不是(可编写脚本( dt_源) ) ,
dt_源=打开( “更改名称.jmp” ) , dt_源=数据表( “更改名称.jmp” ) ;
) ;
当前数据表( dt_源) ;
名称_in =列表() ;
名称输出=列表() ;
列名_in =柱子( “name_in” ) ;
列名称输出=柱子( “名字输出” ) ;
我= 0 ;
对于每一行(名称_in [我] =列名_in [] ;名称输出[我] =列名称输出[] ;我++ ) ;
但后来它不喜欢它:
访问或评估“分配”、name_in 时出现下标问题{1} = /*###*/col_name_in[] /*###*/
如果我只尝试一个变量
对于每一行(名称_in =列名_in [] ;名称输出=列名称输出[] ) ;
那么就可以了,但这只是一个变量随着循环的进行而取不同的值。
我需要一份清单。
有人可以给出如何处理这个问题的想法吗?
谢谢!
回复:如何将表读入列表?我可能会做一些不同的事情:
名称默认为此处( 1 );
// 指向要改变的数据表的指针
dt = data table("要更改的表名");
for(i=1, i<=N 项(name_out), i++,
如果(尝试(列(dt,name_in ) << 获取名称, "") != "", column( dt, name_in ) << 设置名称(name_out ));
);
回复:如何将表读入列表?吉姆,
目前看来这工作正常。 让我知道这是否是正确的做法:
for(i=1, i<=N 项(name_out), i++,
显示(一); If( !Is Missing( 可编写脚本( Try( Column( name_in ) ) ) ), col=列(name_in )<<设置名称(name_out );
显示(列);显示(一))
);
回复:如何将表读入列表?吉姆,
非常感谢您的回复。 它工作得很好。
但是,我发现如果没有包含 name_in 中的名称之一的列(并且表中通常会有不包含 NameChanging.jmp 表中的所有名称的列),我的重命名代码将不起作用。
到目前为止我有这个:
for(i=1, i<=N 项(name_out), i++,
显示(一);尝试(col=列(name_in )<<设置名称(name_out ), Throw("未找到列");
显示(col));显示(一)
)
但是,当第一次迭代后没有从表中的 name_in 中找到第一个名称时,循环就会中断。
回复:如何将表读入列表?我相信以下脚本会将值放入您需要的列表中:
名称默认为此处( 1 ) ;
如果(尝试(dt_源<<得到名字, ”” ) != 《改名》 ,
dt_源=打开( “更改名称.jmp” )
) ;
名称_in = dt_源:名称_in <<获取值;
名称输出= dt_源:名称输出<<获取值;