Trier une colonne par variableSalut,
Comment puis-je créer une nouvelle colonne contenant les valeurs triées d'une colonne par une autre variable ?
Un exemple pour, espérons-le, clarifier : si j'avais un tableau avec deux lignes : Nom et âge, comment créerais-je une troisième ligne qui affiche les noms triés du plus ancien au plus jeune ?
Merci!
Re : Trier une colonne par variableEssayez ceci :
names default to here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column(
"Sorted names by age",
Expression,
"None",
Formula( :Name[ Rank( :age << Get Values )][ Row() ] )
);
dt << New Column(
"Sorted names by height",
Expression,
"None",
Formula( :Name[ Rank( :height << Get Values )][ Row() ] )
);
Notez que cela peut être lent pour les grandes tables.
Modifié pour montrer un exemple plus pertinent.
Re : Trier une colonne par variableSi vos données sont présentées en lignes plutôt qu'en colonnes, comme dans Excel, vous devrez transposer le tableau avant de l'analyser. Dans votre exemple, après transposition, vous aurez deux colonnes : Nom et âge. À ce stade, il s’agit simplement de trier le tableau par colonne d’âge, comme suggéré par d’autres utilisateurs.
Re : Trier une colonne par variableCe que vous avez demandé n'est pas facile à réaliser dans une formule (que je peux proposer de toute façon). Il est relativement facile de le faire de manière interactive en utilisant Tableaux->Trier pour trier le tableau dans un nouveau tableau, puis copiez et collez la colonne qui vous intéresse dans le tableau d'origine.
Cependant, la question suscite un certain intérêt quant à ce que vous essayez réellement de faire.
De manière générale, une ligne d'un tableau de données représente une collection de valeurs pour une seule entité – un élève individuel dans votre exemple simple – et chaque ligne n'a aucun rapport avec les autres lignes. Je ne sais pas en quoi cette nouvelle colonne – de Noms dans votre exemple – serait utile dans une analyse puisque la nouvelle colonne n'a de sens que dans le contexte de son ordre.
Pouvez-vous expliquer un peu plus comment vous utiliseriez cette nouvelle colonne ?
Un exemple pour, espérons-le, clarifier : si j'avais un tableau avec deux lignes : Nom et âge, comment créerais-je une troisième ligne qui affiche les noms triés du plus ancien au plus jeune ?
PS : vous semblez avoir confondu les lignes et les colonnes dans votre exemple. Je suppose que tu voulais vraiment dire un tableau avec deux colonnes et que vous vouliez créer une troisième colonne comme l'indique votre question d'origine. Si je me trompe et que vous vouliez vraiment dire des lignes, veuillez nous le faire savoir.