Comment faire un résumé cumulatif sur une colonne numérique<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je voudrais un moyen pratique dans JMP de faire un résumé cumulatif sur une certaine colonne, où pour chaque valeur de la colonne cible, on vous dit combien de lignes (éléments) ont rencontré une limite de cette valeur dans cette colonne ( inférieur ou égal à , Plus grand ou égal à , moins que , ou plus grand que ).
Par exemple, en commençant par cette table:
| Boîte de Pétri | Bactéries N |
|---|
| 0 | 100 |
| 1 | 103 |
| 2 | 98 |
| 3 | 98 |
| 4 | 102 |
| 5 | 97 |
Je peux vouloir générer le nombre de boîtes de Pétri ayant un poids inférieur ou égal à chaque quantité de bactéries, potentiellement comme ceci:
| Au plus Bactéries N | Plats N Petri |
|---|
| 96 | 0 |
| 97 | 1 |
| 98 | 3 |
| 99 | 3 |
| 100 | 4 |
| 101 | 4 |
| 102 | 5 |
| 103 | 6 |
| 104 | 6 |
De même, je pourrais vouloir des colonnes pour Au moins N bactéries , Moins de N bactéries , et Plus que des bactéries N .
Existe-t-il un moyen pratique de le faire en utilisant l’un des outils de menu et / ou peut-être une colonne de formule, ou faudrait-il un script JSL? Faut-il pré-trier la table d'origine sur la colonne cible (N bactéries)? Y a-t-il des add-ons qui feraient ceci?
Note: Sous MS Excel, cela pourrait être fait en utilisant le " COUNTIF "Fonction adjacente à une colonne" At most N Bacteria "créée manuellement (ou toute autre limite) créée manuellement.
Merci.
Re: Comment faire un résumé cumulatif sur une colonne numériqueEval (Eval Expr (Col Sum (: N bactéries) <= Expr (: Seuil [Row ()]))))
Pour chaque valeur donnée dans la colonne Seuil, nous voulons créer un vecteur de colonne d'indicateurs 0/1 qui symbolise les lignes de la colonne: N bactéries (la colonne entière) qui satisfont l'inégalité.
Supposons que la ligne 3 de la colonne Seuil soit 98. Ensuite, le vecteur est produit par:
: N Bacteria <= 98, qui compare chaque ligne de la colonne: N Bacteria à 98 et crée un 0 ou 1 en conséquence.
La fonction Col Sum () additionnera les 0 et les 1 du vecteur produit par: N Bacteria <= 98. La somme représente le nombre de lignes où: N Bactéries <= 98.
La pièce: Threshold [row ()] est: Threshold [1] pour la rangée 1, Threshold [2] pour la rangée 2, etc. Le problème est que nous devons évaluer la valeur de row (), en substituant la valeur constante réelle contenue dans la table de données, avant d'évaluer le reste de la formule.
Nous utilisons donc la construction Expr (: Threshold [Row ()]), qui, utilisée conjointement avec la construction Eval (EvalExpr ()), permet de remplacer: Threshold [row ()] par la valeur contenue dans le fichier : Rangée "rowth" de la colonne Seuil.
À votre santé,
Brady
Re: Comment faire un résumé cumulatif sur une colonne numériqueMerci pour cette formule Brady. Je ne comprends toujours pas pourquoi vous deviez utiliser un indice ([]) pour Threshold, mais pas pour N Bacteria, et pourquoi vous devez utiliser "Expr" et "Eval Expr" de cette manière. Comment fonctionne la mise en cache des valeurs indésirables et comment cette formule la contourne-t-elle pour obtenir le résultat correct? Pouvez-vous élaborer sur ces détails?
Re: Comment faire un résumé cumulatif sur une colonne numériqueVous pouvez le faire avec la formule suivante; changez simplement l'inégalité pour refléter vos besoins.
Eval (Eval Expr (Col Sum (: N bactéries) <= Expr (: Seuil [Row ()]))))
Dans cet exemple, les colonnes récapitulatives sont créées dans la même table que les données brutes. (Voir fichier joint.)
Notez que Seuil et Nombre dans cette formule correspondent aux colonnes du deuxième tableau de votre message d'origine.
La construction Eval (Eval Expr ()) est nécessaire pour forcer l'évaluation de la valeur Threshold à chaque ligne donnée. Par exemple, si vous essayez la formule ci-dessous, elle ne vous donnera pas les résultats que vous souhaitez.
Somme de Col (: Bactéries N <=: Seuil [Row ()])
À votre santé,
Brady