Re : Syntaxe For Each()La documentation de For Each dans Scripting Index couvre quelque peu cela. L'exemple pour Across donne la meilleure idée de la syntaxe

Names Default To Here(1);
// Across multiple containers
x = {"a", "b"};
y = {"d", "c"};
For Each({{a, b}, index}, Across(x, y), Show(a||b, index));Re : Syntaxe For Each()J'ai manipulé la syntaxe comme dans l'index de script, mais la même erreur est toujours vraie. Cela doit signifier qu'il y a quelque chose que je ne comprends pas avec ma configuration particulière. J'ai besoin de tester d'autres choses et je posterai ici mes conclusions et/ou des questions supplémentaires.Merci, @jthi !
Re : Syntaxe For Each()Je pense que c'est une autre pièce du puzzle :
Le formatage Across() pour plusieurs conteneurs est en cours d'utilisation.Avec le nombre de valeurs que j'ai, cela a du sens, mais cela nécessite également Across().Actuellement, j'enregistre une table de données dans une matrice avec
matrix1 = dt1 << Get as Matrix();
Comment Across() est-il correctement rempli pour fonctionner correctement avec cela ou une table de données, puisque le nombre d'éléments dans Across() doit être égal au nombre de conteneurs (valeurs) dans les accolades ?
Re : Syntaxe For Each()Qu'essayez-vous de faire?Ou essayez-vous JUSTE de comprendre la syntaxe?
Re : Syntaxe For Each()J'ai 3 tableaux :
- dt1 : valeurs mesurées et formules de prédiction
- dt2 : valeurs cibles (actuellement enregistrées en tant que matrice) :
matrix1 = dt2 << Get as Matrix();
- dt3 : tableau pour enregistrer les coefficients de la formule de régression de l'outil Profiler (prédiction)
Ce que j'espère faire, c'est utiliser For Each() pour parcourir dt2, utiliser la formule de prédiction correspondante dans dt1, puis enregistrer les coefficients correspondants générés par le profileur (prédiction). Je suis sûr que je peux le faire avec une boucle For() standard, mais on m'a dit que For Each() serait une meilleure option.
Re : Syntaxe For Each()Est-ce juste pour obtenir des valeurs absolues de la prédiction ?Je suis confus désolé.
Names default to here( 1 );
dt1 = open("$SAMPLE_DATA\Big Class.jmp");
fm = dt1 << Fit Model(
Y( :height, :weight ),
Effects( :age, :sex, :age * :sex ),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Leverage" ),
Run(
:height << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Lack of Fit( 0 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ),
Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 0 )},
:weight << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Lack of Fit( 0 ), Scaled Estimates( 0 ),
Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Studentized Residuals( 0 ),
Plot Effect Leverage( 1 ), Plot Residual by Normal Quantiles( 0 ),
Box Cox Y Transformation( 0 )}
)
);
fm << Prediction Formula; //
dt2 = new table("Targets",
<<NEW column=""></NEW>Re : Syntaxe For Each()@vince_faller , c'est parfait! Une fois qu'une formule de prédiction est générée à partir d'un ensemble de données (dans dt1), je souhaite ensuite utiliser la solution idéale (dans dt2) et revenir en arrière pour saisir les coefficients nécessaires pour obtenir cette valeur idéale (enregistrée dans dt3). Le profileur de prédiction affiche les coefficients des valeurs nécessaires pour ce faire, j'aurais donc besoin de saisir les valeurs des cases.
J'ai un test utilisant la boucle For() en cours en ce moment même, en arrière-plan.Si cela fonctionne, je peux mettre au rebut en utilisant For Each() entier pour ce projet.Bien que, maintenant que je rencontre des problèmes, cela m'encourage encore plus à comprendre pourquoi.
Re : Syntaxe For Each()La structure des arguments est différente si vous essayez de parcourir des matrices. Si vous regardez sous le petit menu déroulant dans l'index de script, il existe des exemples des différentes configurations que la boucle For Each() peut prendre.

Meilleur,
M
Re : Syntaxe For Each()Merci, @MikeD_Anderson .J'ai déjà passé plus d'une journée à parcourir chacune de ces options, mais l'erreur que j'ai mentionnée dans le message d'origine est ce qui me bloque.
Re : Syntaxe For Each()Je pense que la pièce qui vous manque dans les exemples est que les valeurs que vous voulez extraire doivent être sous la forme d'une valeur unique ou d'une liste. Alors Pour chaque( { val1, val2, ..., valn, index}, ...) ne fonctionnerait pas car il y a trop de choses dans la liste des arguments. Mais For each( { {val1, val2, ..., valn}, index}, ...) pourrait mieux fonctionner. Cela correspond également à l'exemple que @jthi fourni plus tôt.
M
Re : Syntaxe For Each()Bonjour,
J'ai déjà enquêté sur les doubles accolades, mais je rencontre l'erreur "trop d'arguments" comme dans mon message d'origine.Je crois cela parce que je n'ai pas spécifié le nombre correct de conteneurs dans Across(). Je ne sais pas comment remplir correctement Across().
À l'heure actuelle, mon alternative à la boucle For() s'étoffe très bien et devrait remplacer le besoin de la fonction For Each(). Cependant, j'aimerais toujours apprendre à l'utiliser correctement, mais peut-être que je ressusciterai ce fil à un autre moment. Ma concentration est nécessaire ailleurs pendant un certain temps.
Merci à tous pour la discussion !
Pour chaque syntaxe()Bonjour,
Je cherche à augmenter le nombre de valeurs pouvant être utilisées dans la fonction For Each().Dans l'index de script et quelques exemples que j'ai trouvés au sein de la communauté JMP et de JMP lui-même, combinés, je n'ai vu qu'une seule valeur et un seul index utilisés : For each( { val1, index}, ... ). Je voudrais utiliser : For each( { val1, val2, ..., valn, index}, ...) . Lorsque j'augmente le nombre de valeurs entre les accolades, une erreur "trop d'arguments" apparaît.
Étrangement, ce message d'erreur indique que le numéro de ligne de l'erreur correspond au nombre total de lignes de la matrice transmises à la fonction For each(), et non au numéro de ligne réel de cette fonction dans le script. Je peux confirmer que c'est le nombre de valeurs que j'essaie d'utiliser, et non le nombre de lignes de la matrice que je transmets à la fonction, en modifiant le nombre de valeurs en val1 & index uniquement, ce qui fonctionne alors.
La matrice transmise a un nombre de colonnes égal au nombre de valeurs que je souhaite transmettre à la fonction For Each().
Des conseils ? Est-ce possible?
Automatisation et scriptIngénierie de la qualité et des procédésles fenêtres