如果打开的表数量不同,则合并数据表你好,
我有一个脚本,可以获取用户从列表框中选择的项目。 根据用户选择的项目数量,会弹出一些表格。 新数据表的数量是可变的,我想将它们全部组合成一个更大的表,称为组合表。 我知道连接函数可以做到这一点,但我希望编写脚本来容纳用户指定数量的表。
从这段代码中,会弹出一些名为 EachChem、EachChem 2、EachChem 3...等的新表。 我想将它们组合成一个更大的表,称为组合表。
For (i = 1, i <= N Items(lt), i++,
dt << Select Where( :chemical == lt[i] );
dt << Get selected rows
dt << Subset(Output Table("EachChem"), Selected Rows(i));
);
或者,如果我可以将上面的 for 循环中的表组合起来,并最终得到一个名为 EachChem 的大型子集表,那也很好。
任何帮助或指示表示赞赏。
数据混合和清理视窗回复:如果打开的表数量不同,则合并数据表这应该做你想做的
theExpr = "Data Table( \!"EachChem\!") << Concatenate(";
For( i = 2, i <= N Items( lt ), i++,
theExpr = theExpr || " Data Table( \!"EachChem " || Char( i ) || "\!"),"
);
theExpr = theExpr || "Output Table( \!"Combined Table\!" ) );";
Eval( Parse( theExpr ) );回复:如果打开的表数量不同,则合并数据表谢谢。成功了。
如果要连接的表的名称也发生变化,则以下操作应该有效。
theExpr = " Data Table( \!"" || MaskList[1] || " " || Char( 2 ) || "\!") << Concatenate(";
For( i = 2, i <= N Items(MaskList), i++,
theExpr = theExpr || " Data Table( \!"" || MaskList[i] || " " || Char( 2 ) || "\!"),"
);
theExpr = theExpr || "Output Table( \!"Final Table\!" ) );";
Eval( Parse( theExpr ) );
在上面的代码中,
MaskList 是一个列表,其中包含数量可变的掩码,具体取决于用户。MaskList 中的每个掩码都与一个表关联。
例如,第一个表名为 Mask1 2 ,(第二个表名为 Mask1,因此额外加了2 ),下一个要连接的表名为 Mask9 2 。(第二个表名为 Mask9,因此额外加了2 ),依此类推。
这将连接 Mask1 2与 Mask9 2等等。
将其放在这里只是为了记录目的。