Définir l'ordre ou l'étiquette de la valeur par une autre colonneJ'ai un problème intéressant d'ordonnancement/d'étiquetage des valeurs. Voir les fichiers joints. Les données proviennent d'un chromatographe en phase gazeuse. L'ordre pertinent n'est pas le tri alphabétique du nom du composé, mais son temps de rétention (TR). Il y a 31 composés ; ordonner manuellement les valeurs de la colonne « Composé » ou étiqueter manuellement les valeurs des colonnes « TR » ou « Masse moléculaire » serait fastidieux et source d'erreurs. Toute personne travaillant avec des données chromatographiques ou spectrales est probablement confrontée au même problème…
Existe-t-il une méthode, via une boîte de dialogue, pour définir les étiquettes de valeur ou leur ordre en se référant à une autre colonne ?
Sinon, quelqu'un aurait-il un script capable de faire cela ?
J'ai également publié une version anonymisée du tableau de données.
Merci d'avance!
Fusion et nettoyage des donnéesRe: Définition de l'ordre ou de l'étiquette des valeurs par une autre colonneCette méthode suppose que vous devez ajouter manuellement la colonne « MW Order », elle se base donc uniquement sur la colonne « RT ». Aucun tri du tableau n'est nécessaire.
Names Default To Here( 1 );
dt << New Column( "Order", numeric, Formula( Col Rank( :R.T. ) ) );
order_list = {};
Wait( 0 );
For Each( {{k, v}, i}, Associative Array( :Order, :Component ), Insert Into( order_list, v ) );
Eval( Eval Expr( :Component << Set Property( "Value Order", {Custom Order( Expr( order_list ) )}, Common Order( 0 ) ) ) );
dt << Delete Columns( "Order" );
Re: Définition de l'ordre ou de l'étiquette des valeurs par une autre colonneMerci ! Cela a fonctionné comme prévu*
* Il faut ajouter comme ligne n° 2 : dt = Current Data Table ();
Re: Définition de l'ordre ou de l'étiquette des valeurs par une autre colonneWaouh, une façon très élégante de faire correspondre l'ordre d'une colonne à une autre !
order_list={};
For Each( {{k, v}, i}, Associative Array( :Order, :Component ), Insert Into( order_list, v ) );
- Associative Array avec références de colonnes:
Associative Array( :Order, :Component ) !!! (--> find the documentation)
automatically: duplicates get skipped, entries ... ordered by keys
- For Each( {{k, v}, i} ... -> {v}
comme alternative :
Associative Array( :Order, :Component ) << get values
Re: Définition de l'ordre ou de l'étiquette des valeurs par une autre colonneVous pouvez également le faire manuellement.
Créer un tableau récapitulatif (utiliser les statistiques si nécessaire)

Triez vos données

Définissez l'ordre des valeurs de la colonne que vous souhaitez trier dans le tableau récapitulatif.

Copiez les propriétés des colonnes du tableau récapitulatif et collez-les dans votre tableau d'origine.


(J'utilise une version modifiée et scriptée de ce processus)
Re: Définition de l'ordre ou de l'étiquette des valeurs par une autre colonneMême si je travaille beaucoup avec des tableaux associatifs, j'oublie encore le <
Re: Définition de l'ordre ou de l'étiquette des valeurs par une autre colonnecas d'application :
Trier les états (dont le nom est une abréviation) par code postal :
Refonte du graphique : Carte thermique de la rougeole
Re: Définition de l'ordre ou de l'étiquette des valeurs par une autre colonnesolution alternative proposée par @MS
comment trier l'axe des x selon la valeur d'une autre colonne
Résumé + Index de classement