縦長から横長への SPLIT: 結果の列を動的にグループ化するにはどうすればよいでしょうか?大きな dt を TALL から WIDE に分割しています。その結果、ヘッダー形式が "Step#_Parameter_Function" である膨大な数の列が生成されます。
これらの列の数はさまざまであり、予測して設定することはできません。また、ステップ番号や名前も同様です。
これらの列をステップ番号ごとにグループ化するにはどうすればよいでしょうか? 長い列リストをスキャンし、最初のステップ番号を選択して、それを「ステップ番号」というラベルの付いたグループに割り当てるループのようなものはありますか?
<< Split(
Split By( :recipe_step_id, :parameter_name, :aggregate_function ),
Split( :value ),
Group( :recipe, :equipment_id, :chamber_id, :wafer_scribe, :wafer_process_start_time ),
Output Table( "Wide" ),
Remaining Columns( Drop All ),
Sort by Column Property
);

データのブレンドとクリーンアップマスカスタマイゼーションRe:背の高いものから広いものへの分割:結果の列を動的にグループ化する方法は?これは、文字「NPN」で始まる新しい列のグループを作成する簡単なスクリプトです。

names default to here(1);
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNamesList = dt << get column names(string, continuous);
NPNList = {};
for(i=1,i<=nitems(colNamesList),i++,
If(contains(colNamesList[i],"NPN")==1,
insert into(NpNList,colNamesList[i])
)
);
dt << group columns("NPNGroup", NPNList);
Re: 縦長から横長への SPLIT: 結果の列を動的にグループ化する方法は?- JMP ドキュメント ライブラリの [ヘルプ] プルダウン メニューにあるスクリプト ガイドをお読みください。このガイドには、現在質問されているような問題を解決するために使用できる言語構造が記載されています。
- 以下は、見つかった列のグループを作成する簡単なサンプルスクリプトです。スクリプトがXYZで始まる列をチェックしているにもかかわらず、意図的にXYZで始まる列がないことに注意してください。
Names Default To Here( 1 );
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colNameList = dt << get column names( string );
NPNList = {};
PNPList = {};
XYZList = {};
// Find matching column names
For( i = 1, i <= N Items( colNameList ), i++,
If(
Left( colNameList[i], 3 ) == "NPN",
Insert Into( NPNList, colNameList[i] ),
Left( colNameList[i], 3 ) == "PNP",
Insert Into( PNPList, colNameList[i] ),
Left( colNameList[i], 3 ) == "XYZ",
Insert Into( XYZList, colNameList[i] )
)
);
// If groups of columns are found, creat JMP groupings
If( N Items( NPNList ) > 0,
dt << select columns( NPNList );
dt << group columns();
);
If( N Items( PNPList ) > 0,
dt << select columns( PNPList );
dt << group columns();
);
If( N Items( XYZList ) > 0,
dt << select columns( XYZList );
dt << group columns();
);Re: 縦長から横長への SPLIT: 結果の列を動的にグループ化する方法は?素晴らしいですね。最後にもう 1 つ質問があります。文字列グループのリストを入力して、一致する列を探し、それぞれのグループに配置することは可能ですか?
たとえば次のようなリスト:
「AAA」、「BBB」、「CCC」などで始まる列
そして、AAA、BBB、CCCというラベルの付いたグループに分けます。
?
BBB に一致する列がない場合にエラーをスキップするにはどうすればよいですか?