Spalte nach Spalteneigenschaften sortierenHallo JMP-Community,
Gibt es eine Möglichkeit, die Spalten nach der Spalteneigenschaft zu sortieren?
Ich habe eine Datentabelle, in der die Spalte die Eigenschaft „Testnummer“ enthält (siehe unten).
Ich möchte alle Spalten in der Spaltengruppe „Tests“ nach der Spalteneigenschaft „Testnummer“ sortieren.
Ich habe die Datentabelle unten angehängt. Irgendwelche Vorschläge?

Danke, Jackie!
Automatisierung und SkripterstellungBetreff: Spalte nach Spalteneigenschaften sortierenHallo @Jackie_ ,
Ich gehe davon aus, dass so etwas für das funktioniert, was Sie wollen. Die Syntax ist wahrscheinlich falsch, aber die Idee ist auf dem richtigen Weg. Ich glaube, dass die Verwendung assoziativer Arrays der einfachste Weg ist, da Einträge automatisch in aufsteigender/alphabetischer Reihenfolge sortiert werden.
Beachten Sie, dass ich gegangen bin group_tests_cols leer. Ich sehe, Sie haben sie in „Tests“ gruppiert, sodass Sie wahrscheinlich eine Liste oder eine Methode zum Abrufen aller Spaltennamen haben, um eine Liste zu erstellen.
Names default to here(1);
dt = current data table();
group_tests_cols = { };
// automatically sorts key data in ascending / alphabetical order
aa_tests_cols = Associative Array();
// Puts all of the test numbers as the keys in the AA
for( a = 1, a <= N Items( group_tests_cols ), a++,
test_number = column( dt, group_tests_cols[a] ) << Get Property( "Formula" );
eval( eval expr( aa_tests_cols[ expr( test_number ) ] ) ) = group_tests_cols[a];
);
aa_keys = aa_tests_cols << Get keys;
// Moves columns in the order of the keys
for( b = 1, b <= N Items( aa_keys ), b++,<BR /> col_name = aa_tests_cols[ aa_keys[b] ]; // uses index of the key to retrieve the actual value of the key, to get the col name
eval( eval expr( expr( column( dt, col_name ) ) << Move Selected Columns( expr( { as column( col_name ) } ), after( :name ) ) ) );
);
Betreff: Spalte nach Spalteneigenschaften sortierenHier ist ein funktionierendes Skript, das die Testzahlwerte findet und dann die Spalten darauf basierend anordnet.
Names Default To Here( 1 );
dt = Current Data Table();
//Get the test numbers and the column names associated with them
valList = {};
testList = {};
For Each( {col}, dt << get column group( "Tests" ),
Show( col );
Insert Into( valList, Num( col << get property( "Test Number" ) ) );
Insert Into( testList, Char( col << get name ) );
);
// Sort the test numbers
sortedList = Sort List( valList );
// Loop through the test orders and reorder the columns
For Each( {test, index}, sortedList,
theCol = Contains( valList, sortedList[N Items( sortedList ) + 1 - index] );
dt << go to( testList[theCol] );
dt << Move Selected Columns( To first );
);
Andere haben möglicherweise eine bessere Möglichkeit, diese Aufgabe zu erfüllen
Betreff: Spalte nach Spalteneigenschaften sortierenDanke, Jim!
Betreff: Spalte nach Spalteneigenschaften sortierenIch denke, das würde in früheren Versionen als JMP17 funktionieren
Names Default To Here( 1 );
dt = Current Data Table();
aa = Associative Array();
For Each({col}, dt << get column group("Tests"),
aa[col << get name] = Num(col << get property("Test Number"));
);
Eval(EvalExpr(
dt << Move Selected Columns(Expr((aa << get keys)[Rank(aa << get values)]), To last)
));
In JMP17 (mindestens JMP17.0) wurde das Verhalten von „Ausgewählte Spalten verschieben“ geändert (aus Versehen) Irgendeine Idee, warum „Ausgewählte Spalten verschieben“ mit einer Liste funktioniert, die in JMP17 geändert wurde?
Betreff: Spalte nach Spalteneigenschaften sortierenDanke, Jarmo!
Betreff: Spalte nach Spalteneigenschaften sortieren@jthi Ich verwende JMP 17 und die Bewegungsauswahl funktioniert nicht.
Mehrere Befehle zum Verschieben ausgewählter Spalten wären nicht robust Irgendeine Idee, warum „Ausgewählte Spalten verschieben“ mit einer Liste funktioniert, die in JMP17 geändert wurde?
Eine mögliche Problemumgehung, die Sie hierfür vorschlagen können:
Names Default To Here( 1 );
dt = Current Data Table();
aa = Associative Array();
For Each({col}, dt << get column group("Tests"),
aa[col << get name] = Num(col << get property("Test Number"));
);
Eval(EvalExpr(
dt << Move Selected Columns(Expr((aa << get keys)[Rank(aa << get values)]), To last)
));
Betreff: Spalte nach Spalteneigenschaften sortierenDas mehrfache Verschieben ausgewählter Spalten innerhalb einer Schleife sollte funktionieren. Sie müssen lediglich zuerst die Sortierliste für die Spalten erstellen und dann eine entsprechende Schleife durchführen