Trier la colonne par propriétés de colonneSalut la communauté JMP,
Existe-t-il un moyen de trier les colonnes par la propriété de colonne ?
J'ai une table de données où la colonne contient la propriété "Numéro de test" (voir ci-dessous).
Je souhaite trier toutes les colonnes du groupe de colonnes "Tests" par la propriété de colonne "Numéro de test"
J'ai joint le tableau de données ci-dessous. Aucune suggestion?

Merci, Jacky !
Automatisation et scriptRe : Trier les propriétés de la colonne par colonneBonjour @Jackie_ ,
Je m'attends à ce que quelque chose comme ça fonctionne pour ce que vous voulez. La syntaxe est probablement incorrecte, mais l'idée est sur la bonne voie. Je pense que l'utilisation des tableaux associatifs est le chemin le plus simple, car il trie automatiquement les entrées par ordre croissant / alphabétique de manière inhérente.
Notez que je suis parti group_tests_cols vide. Je vois que vous les avez regroupés dans "Tests", vous avez donc probablement une liste, ou une méthode pour récupérer tous les noms de colonnes pour créer une liste.
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 ) ) ) );
);
Re : Trier les propriétés de la colonne par colonneVoici un script de travail qui trouve les valeurs des numéros de test, puis ordonne les colonnes en fonction de celles-ci.
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 );
);
D'autres peuvent avoir une meilleure façon d'accomplir cette tâche
Re : Trier les propriétés de la colonne par colonneMerci Jim!
Re : Trier les propriétés de la colonne par colonneJe pense que cela fonctionnerait dans les versions antérieures à JMP17
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)
));
Dans JMP17 (au moins JMP17.0), le comportement de Déplacer les colonnes sélectionnées a été modifié (par accident) Une idée de la raison pour laquelle Déplacer les colonnes sélectionnées fonctionne avec une liste a été modifiée dans JMP17 ?
Re : Trier les propriétés de la colonne par colonneMerci Jarmo !
Re : Trier les propriétés de la colonne par colonne@jthi Je suis sur JMP 17 et la sélection de déplacement ne fonctionne pas.
Les commandes Multiple Move Selected Columns ne seraient pas robustes par Une idée de la raison pour laquelle Déplacer les colonnes sélectionnées fonctionne avec une liste a été modifiée dans JMP17 ?
Toute solution de contournement que vous pouvez suggérer pour cela :
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)
));
Re : Trier les propriétés de la colonne par colonneL'exécution de plusieurs colonnes de déplacement sélectionnées dans une boucle devrait fonctionner. Il vous suffit de créer d'abord la liste de commande pour les colonnes, puis de boucler en conséquence