開いているテーブルの数が異なる場合のデータテーブルの結合こんにちは、
ユーザーがリストボックスから選択した項目を取得するスクリプトがあります。 ユーザーが選択した項目の数に基づいて、いくつかのテーブルがポップアップ表示されます。 新しいデータ テーブルの数は可変であるため、それらをすべて結合テーブルと呼ばれる 1 つの大きなテーブルに結合したいと考えています。 連結関数がこれを行うことは知っていますが、ユーザーが指定したテーブル数に対応するようにスクリプト化したいと考えています。
このコード部分から、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 という 1 つの大きなサブセット テーブルを作成できれば、それも良いでしょう。
助けやご指摘をいただければ幸いです。
データのブレンディングとクリーンアップウィンドウズRe: 開いているテーブルの数が異なる場合のデータテーブルの結合これであなたが望むことができるはずです
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 ) );Re: 開いているテーブルの数が異なる場合のデータテーブルの結合ありがとう。うまくいきました。
連結するテーブルの名前も変更される場合は、次のようにすればよいでしょう。
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です (2 番目のテーブルの名前も Mask1 なので、 2 が余分に付きます)。連結される次のテーブルの名前は Mask9 2です (2 番目のテーブルの名前も Mask9 なので、 2 が余分に付きます)。
これにより、Mask1 2と Mask9 2などが連結されます。
ドキュメント作成の目的でここに載せておきます。