Problème de script : noms de variables non transmis dynamiquement aux instructions d'évaluation conditionnelles<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut à tous,
J'ai du mal à rédiger un script qui me fera gagner des heures avec certaines analyses DOE que nous effectuons régulièrement.
Voici ce que je veux que le script fasse:
1) Créez une nouvelle variable pour chaque variable d'origine dans la commande cc = {Variables} que vous pouvez trouver dans le script. CELA FONCTIONNE BIEN.
2) Pour chaque nouvelle variable créée, je veux joindre une instruction conditionnelle qui évaluera si oui ou non les données contenues dans la variable d'origine sont supérieures à une certaine valeur de seuil.
J'ai l'impression que je me rapproche, le problème est que dans l'instruction conditionnelle, le nom réel de la variable dans la commande cc n'est pas transmis correctement. Par conséquent, mes erreurs de script sortent.
Si vous pouviez être si aimable, j'aimerais mieux comprendre ce qui ne va pas ici. Pour vous aider, j'ai joint des données simulées et le script actuel sur lequel je travaille.
De plus, je veux simplement m'assurer que dans un script, il est correct de transmettre plusieurs instructions conditionnelles à plusieurs variables.
Merci beaucoup pour toute aide qui m'aidera à apprendre de ce problème.
Script (également joint ainsi que les données)
CD = Tableau de données actuel () ;
// Noms de colonne spécifiés par l'utilisateur
cc = { C1 RLU , C2 RLU , C3 RLU } ;
Pour ( je = 1 , je <= N articles ( cc ) , je ++,
Nouvelle colonne ( Carboniser ( cc [ je ]) || "5e3" , Numérique , formule ( SI ( cc [ je ] > 5000 , 1 , 0 ))) ;
( Nouvelle colonne ( Carboniser ( cc [ je ]) || "1e4" , Numérique )) ; 10000 // si la première condition fonctionnait, une seconde serait créée ici pour 10000
( Nouvelle colonne ( Carboniser ( cc [ je ]) || "2e4" , Numérique ))) ; 20000 // un autre conditionnel ici pour 20000
Re : Problème de script : les noms de variables ne sont pas transmis dynamiquement aux instructions d'évaluation conditionnellesJe veux juste vous remercier tous les deux pour votre aide. Cela a résolu le problème, mais plus important encore, je saurai comment résoudre ce type de problème à une date ultérieure.
Très apprécié.
Re : Problème de script : les noms de variables ne sont pas transmis dynamiquement aux instructions d'évaluation conditionnellesMarc Bailey La réponse est bonne.
Si vous voulez toujours des colonnes avec des formules, l'astuce consiste à se rappeler que JMP suppose que la formule doit être évaluée dans la colonne, et non au moment de l'exécution du script. En conséquence, il met cc[1] dans la formule au lieu de la référence de colonne. Vous devez remplacer la référence de colonne dans avant d'évaluer la nouvelle colonne().
cd = Current Data Table();
// User specified column names
cc = {C1 RLU, C2 RLU, C3 RLU};
For( i = 1, i <= N Items( cc ), i++,
Eval(
Substitute(
Expr(
New Column( Char( cc[i] ) || "5e3", Numeric, formula( col > 5000 ) );
New Column( Char( cc[i] ) || "1e4", Numeric, formula( col > 10000 ) );
New Column( Char( cc[i] ) || "2e4", Numeric, formula( col > 20000 ) );
),
expr(col), cc[1]
)
);
);
-Jeff
Re : Problème de script : les noms de variables ne sont pas transmis dynamiquement aux instructions d'évaluation conditionnellesEssayez ce script :
CD = Tableau de données actuel () ;
// Noms de colonne spécifiés par l'utilisateur
cc = { C1 RLU , C2 RLU , C3 RLU } ;
Pour ( je = 1 , je <= N articles ( cc ) , je ++,
CD << Nouvelle colonne ( Carboniser ( cc [ je ] ) || " 5e3" ,
Numérique ,
Valeurs (
Local ( { Les données } ,
Les données = cc [ je ] << Obtenir comme matrice ;
Les données > 5000
)
)
) ;
CD << Nouvelle colonne ( Carboniser ( cc [ je ] ) || " 1e4" ,
Numérique ,
Valeurs (
Local ( { Les données } ,
Les données = cc [ je ] << Obtenir comme matrice ;
Les données > 10000
)
)
) ;
CD << Nouvelle colonne ( Carboniser ( cc [ je ] ) || " 2e4" ,
Numérique ,
Valeurs (
Local ( { Les données } ,
Les données = cc [ je ] << Obtenir comme matrice ;
Les données > 20000
)
)
) ;
) ;