Bonjour,
J'ai une table de donnée de très grande taille (environ 6 million de lignes). Elle a notamment comme colonnes une colonne Date, une colonne Référence Produit et une colonne Résultat (qui a deux valeurs possibles : OK soit NOK). Chaque ligne correspond à un test de composant.
Je voudrais pouvoir laisser l'utilisateur sélectionner une période ou une date. A partir de cette période je voudrais pouvoir trouver et extraire les 5 références produit qui ont le plus de Résultats == NOK en pourcentage par rapport au nombre de tests effectués sur la période sélectionnée.
Je ne sais pas comment scripter cela de manière optimale.
Merci d'avance si vous avez des idées à me proposer
Bonjour, Il existe plusieurs manières de procéder. Un moyen particulièrement agréable implique JMP Query Builder avec un script de post-requête, qui demandera à l'utilisateur les dates de début et de fin avant de procéder à l'analyse. Je recommande fortement de vous renseigner sur le JMP Query Builder pour un travail comme celui-ci. C'est un peu trop à taper ici, malheureusement.
Je vais donner une alternative simple qui fonctionne toujours bien.
Tout d'abord, je recommande toujours de stocker les données 1/0 numériquement, sous forme de 1 et de 0, en utilisant des étiquettes de valeur pour afficher des choses comme "OK" et "NOK". Dans votre cas, nous pourrions utiliser 1 => "OK" et 0 -> "NOK". (Voir le tableau de données ci-joint.)
Je le recommande car résumer une moyenne par groupes fournit immédiatement la proportion de « OK » dans chaque groupe. Si les 1 et les 0 avaient été inversés, la moyenne donne la proportion de "NOK".
Donc, avec cette modification apportée, nous faisons encore une chose : nous ajoutons des variables de table. Cliquez avec le bouton droit sur le triangle rouge près du nom de la table et sélectionnez Nouvelle variable de table. Cela affiche une boîte de dialogue dans laquelle vous pouvez nommer une nouvelle variable de table et lui donner une valeur initiale.

Faire cela pour "Begin" et "End" nous permet de définir deux valeurs (des chaînes, dans ce cas, mais les nombres fonctionnent aussi) qui peuvent être utilisées comme des colonnes dans les formules et les scripts. Pour modifier une valeur ultérieurement, il suffit de double-cliquer dessus pour la modifier.
En utilisant le même menu triangle rouge, nous pouvons ajouter un nouveau script à la table de données. J'ai ajouté un script appelé "Worst 5" et collé le texte du script ci-dessous.
Names Default To Here(1);
dt = Current Data Table();
//change table variable strings to times. the format used for the string must be one that JMP recognizes.
beg = informat(dt:Begin);
end = informat(dt:End);
//subset the table to get only those rows in the time interval of interest
dtSub = dt << subset(selected Columns (0), rows(dt << get rows where (beg < :date < end)));
//summarize this new table to find averages of the OK column, grouping by product. This will be the proportion of "good"
dtSubSum = dtSub << summary(group(:product), mean(:OK));
//sort this new table, ascending
dtSubSum << sort(replace table, by(:"Mean(OK)"n), order(ascending));
//the first 5 rows now have the lowest proportion of "good", hence highest proportion of "bad"
dtSubSum << subset(selected Columns(0), rows(1::5));
//close the first subset table, and the summary table linked to it.
close(dtSub, nosave);

Il est maintenant facile d'obtenir le rapport que vous souhaitez :
1) Modifiez les valeurs de début et de fin comme vous le souhaitez.
2) Appuyez sur le bouton vert du script "Worst 5" pour obtenir les résultats.
Encore une fois, il existe des moyens plus astucieux de le faire, mais ils nécessitent une connaissance du JMP Query Builder ou des scripts de fenêtre interactive (Display Tree). Je recommande fortement d'apprendre les deux, mais en attendant, il y a beaucoup à faire avec les variables de table et les opérations de base sur les tables.
Une autre option, n'impliquant aucun script :
1) Utiliser la plateforme Tabulate pour calculer les moyennes, en utilisant également un filtre de données local pour limiter la plage de dates considérée.
2) Cliquez avec le bouton droit sur le tableau du rapport Tabulate terminé, sélectionnez Make into Data Table, puis triez le tableau de données résultant de sorte que les 5 "pires" lignes (c.
3) Si vous le souhaitez, sélectionnez ces 5 lignes et sous-ensembles.
Espérons que l'une de ces idées vous permettra de démarrer.
Acclamations,
Brady