Ordina colonna per proprietà colonnaCiao comunità JMP,
C'è un modo per ordinare le colonne in base alla proprietà della colonna?
Ho una tabella di dati in cui la colonna contiene la proprietà "Test Number" (vedi sotto).
Voglio ordinare tutte le colonne nel gruppo di colonne "Test" in base alla proprietà della colonna "Numero test"
Ho allegato la tabella dei dati di seguito. Eventuali suggerimenti?

Grazie Jackie!
Automazione e scriptingOggetto: Ordina colonna per proprietà colonnaCiao @Jackie_ ,
Mi aspetto che qualcosa del genere funzioni per quello che vuoi. La sintassi è probabilmente errata, ma l'idea è sulla strada giusta. Credo che l'utilizzo degli array associativi sia il percorso più semplice, poiché ordina automaticamente le voci in ordine crescente/alfabetico intrinsecamente.
Nota che me ne sono andato group_tests_cols vuoto. Vedo che li hai raggruppati in "Test", quindi probabilmente hai un elenco o un metodo per recuperare tutti i nomi delle colonne per creare un elenco.
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 ) ) ) );
);
Oggetto: Ordina colonna per proprietà colonnaEcco uno script funzionante che trova i valori del numero di test e quindi ordina le colonne in base a essi.
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 );
);
Altri potrebbero avere un modo migliore per svolgere questo compito
Oggetto: Ordina colonna per proprietà colonnaGrazie Jim!
Oggetto: Ordina colonna per proprietà colonnaPenso che funzionerebbe nelle versioni precedenti di 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)
));
In JMP17 (almeno JMP17.0) il comportamento di Sposta colonne selezionate è stato modificato (per errore) Qualche idea sul motivo per cui Sposta colonne selezionate funziona con un elenco è stato modificato in JMP17?
Oggetto: Ordina colonna per proprietà colonnaGrazie Jarmo!
Oggetto: Ordina colonna per proprietà colonna@jthi I su JMP 17 e la selezione della mossa non funziona.
I comandi Muliple Move Selected Columns non sarebbero robusti per Qualche idea sul motivo per cui Sposta colonne selezionate funziona con un elenco è stato modificato in JMP17?
Qualsiasi soluzione alternativa che puoi suggerire per questo:
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)
));
Oggetto: Ordina colonna per proprietà colonnaL'esecuzione di più colonne di spostamento selezionate all'interno di un ciclo dovrebbe funzionare. Devi solo creare prima l'elenco di ordinamento per le colonne e quindi eseguire il ciclo di conseguenza