JSLを使用してすべてのデータテーブルを連結するこんにちは。開いているすべてのデータ テーブルを連結したいと考えています。 ただし、データ テーブルの数は変化する可能性があるため、スクリプトがさまざまなテーブル数に適応できるようにしたいと考えています。
これは私がやりたいことのコードですが、一般化したいと思います。
データ テーブル( N Table() ) << Concatenate(
データ テーブル( (N テーブル()-1) )、
データ テーブル( (N テーブル()-2) )、
データ テーブル( (N テーブル()-3) )、
データ テーブル( (N テーブル()-4) )、
データ テーブル( (N テーブル()-5) )、
出力テーブル(「すべての温度」)、
ソース列の作成
);
これは私が試したコードです、出力テーブルの名前が未解決というエラーが発生します(この場合、 noTemps は 6 です)
データ テーブル( N Table() ) << Concatenate(
For( i = 1、i < (noTemps)、i++、
データ テーブル( (N Table()-i) )、
);
出力テーブル(「すべての温度」)、
ソース列の作成
);
自動化とスクリプト作成データアクセスデータのブレンディングとクリーンアップRe: JSL を使用してすべてのデータ テーブルを連結するJMP のどのバージョンを使用していますか?
Re: JSL を使用してすべてのデータ テーブルを連結するJMP16+ の場合は、for each を使用してテーブルのリストをループします。
Names Default To Here(1);
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
dt2 = dt1 << Subset(All Rows, Selected Columns(0), Output Table("DEMO"));
dts = Get Data Table List();
dt_first = Remove From(dts, 1); // remove first table as we concatenate to that
For Each({dt}, dts,
dt_first << Concatenate(
dt,
"Append to first table",
"Create source column"
);
// Close(dt, no save);
);Re: JSL を使用してすべてのデータ テーブルを連結するご返答ありがとうございます。しかし、これを私の状況に適用するのに苦労しています(比較的簡単だと思いますが)。
dtって何ですか? 名前が未解決というエラーが表示されます。
また、スクリプトの前の部分ですべてのテーブルがすでに開いているため、dt1 は割り当てられていません。 特定のテーブルを直接呼び出さずに割り当てるにはどうすればよいですか?
ただし、以下のように dt1 を割り当てると、デモ テーブルが生成されますが、テーブルはデモという単語でいっぱいになります。
dt1 = Open( "$DOCUMENTS/Plot_Conduction_Losses/モジュール 6/DUT2/100C.jmp" );
説明が不十分で冗長でしたら申し訳ありません。
Re: JSL を使用してすべてのデータ テーブルを連結するdt1 と dt2 はデモンストレーションのみを目的としています。 Get Data Table List() を使用して、開いているすべてのテーブルへの参照を取得します。 どの JMP バージョンを使用していますか (For にはそれぞれ JMP16+ が必要ですが、For で置き換えることができます)? dtデータテーブルへの参照は、次のデータテーブル参照のリストから見つけることができます。 dts。
Re: JSL を使用してすべてのデータ テーブルを連結するJMP17を持っています。
dtの部分は理解できました。混乱して申し訳ありません。
dts = データテーブルリストを取得();
dt_first = 削除元(dts, 1); // 最初のテーブルに連結するので、最初のテーブルを削除します
For Each({dt}, dts,
dt_first << 連結(
デット、
//最初のテーブルに追加、
"ソース列を作成",
出力テーブル(「すべての温度」)、
);
//Close(dt、保存なし);
);
これは私が望むものではありません。 これにより、すべて dt_first と連結された 6 つの新しいデータ テーブルが生成されます。新しいデータテーブルにしたいと思います。 コメントを解除すると、テーブルの最初の行に追加されます。 6 つのソース列が生成されますが、これ以上の分析で並べ替えに使用することはできません。
Re: JSL を使用してすべてのデータ テーブルを連結する連結でリストを使用できることを覚えていませんでした
Names Default To Here(1);
Open("$SAMPLE_DATA/Students.jmp");
Open("$SAMPLE_DATA/Students1.jmp");
Open("$SAMPLE_DATA/Students2.jmp");
dts = Get Data Table List();
dt_first = Remove From(dts, 1)[1]; // remove first table as we concatenate to that
dt_result = dt_first << Concatenate(dts, "Create source column");
また、Remove From() はリストを返すため、Remove From() から最初のインデックスを取得する必要があります/取得する必要があります。