Objet: Outils de tableau de données, partie 3: numérotation des lignes au sein des groupes pour obtenir des classements flexiblesBonjour, est-il possible de faire cela avec JMP 12? Je vous remercie
Objet: Outils de tableau de données, partie 3: numérotation des lignes au sein des groupes pour obtenir des classements flexiblesBonjour,
La fonction Col Cumulative Sum a fait ses débuts dans JMP 13. Sans cela, vous pourriez essayer quelque chose comme ceci, bien que table de données actuelle () donne des problèmes lorsque la table avec cette formule n'est pas celle en cours. Notez que si vous souhaitez utiliser plusieurs colonnes pour les regrouper, vous devez concaténer plusieurs colonnes et baser la formule sur cette nouvelle colonne.
À votre santé,
Brady
Names Default To Here( 1 );
dt = open("$Sample_Data\Car Physical Data.jmp");
dt << New Column( "Rnk",
formula(
dtCur = Current Data Table();
ct = :country[Row()];
Contains( dtCur << get rows where( :country == ct ), Row() );
)
);
Objet: Outils de tableau de données, partie 3: numérotation des lignes au sein des groupes pour obtenir des classements flexiblesCela a bien fonctionné merci! J'exécute ce script immédiatement après l'extraction SQL afin que la table de données actuelle () fonctionne parfaitement.
Et oui, j'ai plus d'une colonne à regrouper (4 colonnes au total), donc créer une nouvelle colonne avec les 4 colonnes concatendées a parfaitement fonctionné. La seule chose à faire est que je travaille sur des tables de données contenant de 5 000 à 6 000 lignes de données. Il y a environ 780 éléments groupés que je classe, il faut donc une minute à JMP pour générer la colonne Rnk - mais cela fonctionne!
Merci encore!
Objet: Outils de tableau de données, partie 3: numérotation des lignes au sein des groupes pour obtenir des classements flexiblesAvant JMP13, ce poste expliquait comment faire une somme glissante. Ce post ne couvre pas le faire par groupes, mais il n'est pas trop difficile d'étendre le concept à cela.
https://community.jmp.com/t5/Discussions/how-to-get-cumulative-sum-data/td-p/6766
Objet: Outils de tableau de données, partie 3: numérotation des lignes au sein des groupes pour obtenir des classements flexiblesEn particulier, jaredgj, essayez la formule:
k = rangée ();
Somme (i = 1, k, If (: pays [i] ==: pays [k], 1, 0));
J'avais oublié la fonction de sommation. Ce sera beaucoup plus rapide que l'autre fonction, car obtenir des lignes, comme l'autre formule, prend beaucoup de temps.
À votre santé,
Brady
Objet: Outils de tableau de données, partie 3: numérotation des lignes au sein des groupes pour obtenir des classements flexiblesBravo brady_brady, ça a aussi fonctionné. Le script a toutefois pris un peu de temps, mais il a été un peu plus rapide que celui que vous avez posté. Merci encore
Et merci bfoulkes pour le lien / post supplémentaire
Outils de tableau de données, partie 3: numérotation des lignes au sein des groupes pour obtenir des classements flexiblesAvez-vous déjà eu un ensemble de données dans lequel vous deviez effectuer des tâches similaires à celles-ci:
À partir d'un grand tableau contenant plusieurs mesures effectuées par plusieurs outils - enregistrées à intervalles irréguliers -, créez un tableau de sous-ensemble contenant uniquement la kème mesure la plus récente pour chaque combinaison outil / opérateur. Pour une métrique donnée, recherchez les k occurrences supérieures (ou inférieures) dans chaque groupe; un exemple est la liste des trois produits dans chaque région qui génèrent le plus de revenus ou la plus faible marge bénéficiaire.Si oui, vous n'êtes pas seul. Nous recevons assez régulièrement des demandes de conseils sur la façon de résoudre des problèmes comme celui-ci. Étant donné que chacune de ces tâches nécessite un classement, il est naturel que les utilisateurs de JMP se tournent vers la fonction rank () dans JSL, ce qui est certainement une option. Le problème est que la fonction rank () requiert que la colonne par laquelle les lignes de la table doivent être classées soit explicitement spécifiée, et lorsque nous explorons des données, nous souhaitons souvent expérimenter avec une variété de classements, sans créer plusieurs nouvelles colonnes ou éditer. formules de colonne.
En utilisant la fonction Col Cumulative Sum () de JMP 13 de manière créative, nous pouvons classer les lignes de manière flexible et dynamique: pour produire un classement différent, il suffit de trier une variable différente.
Pour illustrer cela, considérons Car Physical Data.jmp, qui contient des données nominales et continues sur les voitures. Il est installé dans le dossier de données exemple JMP, auquel vous pouvez accéder en sélectionnant Aide> Bibliothèque de données exemple.
Ci-dessous, j'ai ajouté une colonne (mise en surbrillance) pour calculer le nombre cumulé de voitures, regroupées par pays, qui se produisent dans ou avant la ligne donnée. Notez que lorsque nous avançons dans les lignes du tableau, les wagons avec Pays = Japon sont numérotés de manière séquentielle, de même que les wagons pour Pays = États-Unis et Pays = Autre.
Cette approche est puissante car pour répondre à la question «Quelles sont les cinq voitures les plus légères dans chaque pays?», Nous devons uniquement procéder comme suit:
Triez la table par poids, en ordre croissant, en conservant la table d'origine. Sélectionnez les cellules dont la colonne de classement est <= 5. Sous-définissez ces lignes si vous le souhaitez.Cette approche est également flexible car si nous décidons de rechercher les trois voitures les plus puissantes de chaque pays, nous trions simplement les chevaux par ordre décroissant et sélectionnons les cellules dont le classement est inférieur ou égal à trois.
La formule dans la colonne de classement est simple (ci-dessous), mais vous n’avez pas besoin de la noter: à l’aide du complément Outils de table de données, même les non-scripteurs peuvent facilement ajouter une colonne comme celle-ci à n’importe quelle table, en utilisant n’importe quelle combinaison. de regroupement des colonnes.
Une fois que vous avez exécuté le complément, il vous suffit de sélectionner la table et les colonnes de regroupement souhaitées, puis de cliquer sur le bouton "Créer une colonne". C'est tout!
le Complément Outils de table de données peut être téléchargé gratuitement à partir du Echange de fichiers JMP - un profil SAS gratuit est requis.
Remarque: ce blog est la troisième d'une série explorant les différentes fonctionnalités du complément Outils de la table de données.
À l'aide du complément Outils de la table de données, vous pouvez créer une colonne pour effectuer des requêtes flexibles basées uniquement sur l'ordre de tri de la table - aucun codage requis!