如何将表格读入列表?<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_source =数据表( “改名.jmp” ) ,扔( “正在尝试打开数据表” )) ;
如果(不是(可编写脚本( dt_source ) ) ,
dt_source =打开( “改名.jmp” ) , dt_source =数据表( “改名.jmp” ) ;
) ;
当前数据表( dt_source ) ;
名称_输入=列表() ;
名称输出=列表() ;
col_name_in =柱子( “name_in” ) ;
col_name_out =柱子( “名称输出” ) ;
我= 0 ;
对于每一行(名称_输入[我] = col_name_in [] ;名称输出[我] = col_name_out [] ;我++ ) ;
但后来它不喜欢它:
下标问题{1}在“分配”的访问或评估中,name_in = /*###*/col_name_in[] /*###*/
如果我只尝试一个变量
对于每一行(名称_输入= col_name_in [] ;名称输出= col_name_out [] ) ;
然后就可以了,但这只是一个变量,随着循环的进行而取不同的值。
我需要一份清单。
有人可以告诉我如何处理这个吗?
谢谢!
回复:如何将表读入列表?我可能会做一些不同的事情:
名称默认为 Here( 1 );
// 指向要更改的数据表的指针
dt = data table("要更改的表名");
对于(i=1,i<=N 项(name_out),i++,
如果(尝试(列(dt,name_in ) << 获取名称, "") != "", column( dt, name_in ) << 设置名称(name_out ));
);
回复:如何将表读入列表?吉姆,
这似乎现在工作正常。 让我知道这是否是正确的做事方式:
对于(i=1,i<=N 项(name_out),i++,
显示(一); If( !Is Missing( Is Scriptable( Try( Column( name_in ) ) ) ), col=列(name_in )<<设置名称(name_out );
显示(列);显示(i))
);
回复:如何将表读入列表?吉姆,
非常感谢您的回复。 它工作得很好。
但是,我发现如果不存在名称来自 name_in 的列(并且表中通常会有不包含 NameChanging.jmp 表中的所有名称的列),我的重命名代码将不起作用。
到目前为止我有这个:
对于(i=1,i<=N 项(name_out),i++,
显示(一);尝试(列=列(name_in )<<设置名称(name_out ), Throw("没有找到列");
显示(列));显示(i)
)
但是当它没有在表中的 name_in 中找到名字时,循环会在第一次迭代后中断。
回复:如何将表读入列表?我相信以下脚本会将值放入您需要的列表中:
名字默认到这里( 1个) ;
如果(尝试( dt_source <<得到名字, “” ) != “改名” ,
dt_source =打开( “改名.jmp” )
) ;
名称_输入= dt_source :名称_输入<<获取值;
名称输出= dt_source :名称输出<<获取值;