Nombre d'exécutions du script JSL à valeurs répétées ?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je voudrais créer un script pour un décompte en cours ou une somme cumulée de valeurs répétées dans une colonne.
Par exemple, la première apparition doit être égale à 1, la valeur maximale du nombre par valeur spécifiée doit être égale à la somme cumulée de la valeur dans la colonne.
| couleur | nombre_couleur |
|---|
| ROUGE | 1 |
| ROUGE | 2 |
| BLEU | 1 |
| JAUNE | 1 |
| ROUGE | 3 |
Idéalement, la sortie de :count_color n'aurait pas besoin que la table de données soit triée par :color
Merci.
Re : Nombre d'exécution du script JSL à valeurs répétées ?Créer une nouvelle colonne et lui attribuer la formule ci-dessous fait ce que vous recherchez, je pense :
Col Cumulative Sum( 1, :Color )
Re : Nombre d'exécution du script JSL à valeurs répétées ?MODIFIER: Je voudrais peut-être ignorer cela. Cela donne un nombre total de chaque élément pouvant être utilisé ultérieurement dans un script, mais ne répond pas réellement à la vraie question du PO.
Une manière un peu plus détournée de procéder consiste à utiliser la plate-forme Résumé, puis à lire le tableau résultant dans l'objet de script de votre choix. J'ai utilisé un tableau associatif ici.
// create temporary summary table
new = Data Table( "Untitled 8" ) << Summary( Group( :color ) );
// make sure "Untitled 8" is the correct title of the original data, containing a column named "color"
<BR />// transfer result to associative array
result = Associative Array(); // empty A.A.
For Each Row(new, result << Insert Item(:color, :N Rows)); // populate A.A.
Show(result); // display A.A. to log
Close(new, No Save); // close temporary summary table
Re : Nombre d'exécution du script JSL à valeurs répétées ?Salut @Craige_Hales ,
Je fais un décompte similaire de tous les nombres qui ne sont pas nuls, sinon il sera remplacé par 1.
Si( :Nombre != 0,
Nom Expr( Eval( Eval Expr( Col Sum( Row() <= Expr( Row() ), :Number ) ) ) ),
1
);
Cela ne semble pas fonctionner. J'obtiens des espaces noirs pour les nombres non nuls. Peux-tu m'aider avec ceci? Merci.
Re : Nombre d'exécution du script JSL à valeurs répétées ?Soit collez la formule de MS dans l'éditeur de formule ou enveloppez la formule dans NomExpr ( explication plus longue ici 
New Column( "count",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Name Expr( Eval( Eval Expr( Col Sum( Row() <= Expr( Row() ), :color ) ) ) ) )
),
Il existe un bug dans JMP que vous avez aidé à découvrir ; la table résultante n'inclut pas le wrapper Name Expr( ) autour de la formule lorsque la commande <Re : Nombre d'exécution du script JSL à valeurs répétées ?
L'utilisation de la commande Eval sous la formule génère une sortie, mais toutes les valeurs = 0
Peut-être ai-je mal interprété. Ma formule de colonne est ci-dessous.
// Compte courant
Nouvelle colonne("count_color",
numérique,
continu,
formule(
Eval(Eval Expr(Col Sum(Row() <= Expr(Row()), :color)))
)
);
Re : Nombre d'exécution du script JSL à valeurs répétées ?Essayez cette expression dans une formule de colonne (ou dans une boucle For Each Row()) ;
Évaluer ( Expr d'évaluation ( Col Somme ( Rangée () <= Expr ( Rangée ()) , : couleur ))) ;