<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />列の値から連想配列を作成したいと考えています。JMP コミュニティの誰かが賢い解決策を持っているかどうか興味があります。JMP10を使用しています。例を以下に示します。
// 次のデータテーブルの場合:
example = New Table( "サンプルデータ", Add Rows( 27 ), New Column( "Lot", Character, Nominal, Set Values(
{"A"、"A"、"A"、"A"、"A"、"A"、"A"、"A"、"A"、"B"、"B"、"B"、" B」、「B」、「B」、「B」、「B」、「B」、「C」、「C」、「C」、「C」、「C」、「C」、「C」 、「C」、「C」}
) )、新しい列( "テスト"、文字、公称値、設定値(
{"テスト1"、"テスト1"、"テスト1"、"テスト2"、"テスト2"、"テスト2"、"テスト3"、"テスト3"、"テスト3"、"テスト1"、"テスト1"、"テスト1"、"テスト2"、"テスト2"、"テスト2"、
"テスト 3"、"テスト 3"、"テスト 3"、"テスト 1"、"テスト 1"、"テスト 1"、"テスト 2"、"テスト 2"、"テスト 2"、"テスト 3"、"テスト 3"、"テスト 3"}
) )、新しい列( "パラメータ"、文字、公称値、設定値(
{"Param1"、"Param2"、"Param3"、"Param1"、"Param2"、"Param3"、"Param1"、"Param2"、"Param3"、"Param1"、"Param2"、"Param3"、"パラメータ1",
「Param2」、「Param3」、「Param1」、「Param2」、「Param3」、「Param1」、「Param2」、「Param3」、「Param1」、「Param2」、「Param3」、「Param1」、「Param2」 "、
"Param3"} ) )、新しい列( "Yield"、数値、連続、Format( ""、16 )、
設定値( [1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0、1、1、0])
), New Column( "欠陥コード", 文字, 公称, Formula( If( :Yield == 0, :Test || "_" || :Parameter ) ) );
// キー = ロット、値 = 欠陥コードの連想配列を作成したいと思います。以下の例を参照してください。
// これをスクリプト化する最良の方法は何でしょうか?
// おまけとして、複数レベルの連想配列 (IE: ロット => テスト => パラメーター => 欠陥コード) を作成することは可能ですか?
欠陥 = 連想配列(例:Lot );
欠陥["A"] = {"Test1_Param3", "Test2_Param2", "Test2_Param3", "Test3_Param2"};
欠陥["B"] = {"Test1_Param1"、"Test1_Param2"、"Test1_Param3"、"Test2_Param2"、"Test3_Param2"、"Test3_Param3"};
欠陥["C"] = {"Test1_Param2", "Test1_Param3", "Test2_Param3", "Test3_Param3"};
// 助けてくれてありがとう!
興味のある人は:
欠陥 = 連想配列( :Lot );
currentkey1 = 欠陥 << 最初;
For( i = 1, i <= N 項目 (欠陥), i++,
value1 = Associative Array( :Test[example << Get Rows Where( :Lot == currentkey1 )] );
欠陥[現在のキー1] = 値1;
currentkey2 = 欠陥[currentkey1] << 最初;
For( j = 1, j <= N Items( Defects[currentkey1] )、j++、
value2 = :欠陥コード[例 << Get Rows Where( :Lot == currentkey1 & :Test == currentkey2 & :Yield == 0 )];
欠陥[現在のキー1][現在のキー2] = 値2;
nextkey2 = 欠陥[currentkey1] << Next( currentkey2 );
現在のキー 2 = 次のキー 2;
);
nextkey1 = 欠陥 << Next( currentkey1 );
現在のキー1 = 次のキー1;
);
Show( 欠陥 );
方法がわかりましたキー = ロット、値 = 欠陥コードで連想配列を作成します。 。
複数レベルの連想配列に関するアドバイスがあるかどうか知りたいです。ありがとう!
欠陥 = 連想配列(例:Lot );
currentkey = 欠陥 << 最初;
For( i = 1, i <= N 項目 (欠陥), i++,
値 = :欠陥コード[例 << Get Rows Where( :Lot == currentkey & :Yield == 0 )];
欠陥[現在のキー] = 値;
nextkey = 欠陥 << Next( currentkey );
現在のキー = 次のキー;
);
Show( 欠陥 );