<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich möchte ein assoziatives Array aus Spaltenwerten erstellen.Ich bin gespannt, ob jemand in der JMP-Community eine clevere Lösung hat.Ich verwende JMP10. Ein Beispiel finden Sie unten.
// Für die folgende Datentabelle:
Beispiel = Neue Tabelle( "Beispieldaten", Zeilen hinzufügen( 27), Neue Spalte( "Lot", Zeichen, Nominal, Werte festlegen(
{"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“}
) ), Neue Spalte( „Test“, Zeichen, Nominal, Werte festlegen(
{"Test1", "Test1", "Test1", "Test2", "Test2", "Test2", "Test3", "Test3", "Test3", "Test1", "Test1", "Test1", " Test2“, „Test2“, „Test2“,
„Test3“, „Test3“, „Test3“, „Test1“, „Test1“, „Test1“, „Test2“, „Test2“, „Test2“, „Test3“, „Test3“, „Test3“}
) ), Neue Spalte( „Parameter“, Zeichen, Nominal, Werte festlegen(
{"Param1", "Param2", "Param3", "Param1", "Param2", "Param3", "Param1", "Param2", "Param3", "Param1", "Param2", "Param3", " Param1",
„Param2“, „Param3“, „Param1“, „Param2“, „Param3“, „Param1“, „Param2“, „Param3“, „Param1“, „Param2“, „Param3“, „Param1“, „Param2 ",
"Param3"} ) ), New Column( "Yield", Numeric, Continuous, Format( "", 16 ),
Werte festlegen( [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( "Defect Code", Character, Nominal, Formula( If( :Yield == 0, :Test || "_" || :Parameter ) ) ) );
// Ich möchte ein assoziatives Array mit Schlüssel = Lot und Werten = Fehlercodes erstellen.Bitte sehen Sie sich das Beispiel unten an.
// Was ist der beste Weg, dies zu skripten?
// Ist es als Bonus möglich, ein assoziatives Array mit mehreren Ebenen zu erstellen (IE: Lot => Test => Parameter => Fehlercode)?
Defekte = Assoziatives Array( example:Lot );
Defects["A"] = {"Test1_Param3", "Test2_Param2", "Test2_Param3", "Test3_Param2"};
Defects["B"] = {"Test1_Param1", "Test1_Param2", "Test1_Param3", "Test2_Param2", "Test3_Param2", "Test3_Param3"};
Defects["C"] = {"Test1_Param2", "Test1_Param3", "Test2_Param3", "Test3_Param3"};
// Danke für die Hilfe!
Falls jemand neugierig ist:
Defekte = Assoziatives Array( :Lot );
currentkey1 = Defekte << First;
For( i = 1, i <= N Items( Defekte), i++,
Werte1 = Assoziatives Array( :Test[Beispiel << Get Rows Where( :Lot == currentkey1 )] );
Defekte[aktueller Schlüssel1] = Werte1;
currentkey2 = Defects[currentkey1] << First;
For( j = 1, j <= N Items( Defects[currentkey1] ), j++,
Werte2 = :Defect Code[example << Get Rows Where( :Lot == currentkey1 & :Test == currentkey2 & :Yield == 0 )];
Defekte[aktueller Schlüssel1][aktueller Schlüssel2] = Werte2;
nextkey2 = Defects[currentkey1] << Next( currentkey2 );
currentkey2 = nextkey2;
);
nextkey1 = Defekte << Next( currentkey1 );
currentkey1 = nextkey1;
);
Show( Defekte );
Ich habe herausgefunden, wie es geht Erstellen Sie ein assoziatives Array mit Schlüssel = Los und Werten = Fehlercodes .
Ich bin gespannt, ob es Ratschläge zu assoziativen Arrays mit mehreren Ebenen gibt.Danke!
Defekte = Assoziatives Array( example:Lot );
currentkey = Defekte << First;
For( i = 1, i <= N Items( Defekte), i++,
Werte = :Defect Code[example << Get Rows Where( :Lot == currentkey & :Yield == 0 )];
Defekte[aktueller Schlüssel] = Werte;
nextkey = Defekte << Next( currentkey );
aktueller Schlüssel = nächster Schlüssel;
);
Show( Defekte );