Re: For Each()-SyntaxFor Each-Dokumentation in Scripting Index deckt dies etwas ab. Beispiel für Across gibt die beste Idee für die Syntax

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: For Each()-SyntaxIch habe mit der Syntax wie im Scripting-Index herumgespielt, aber derselbe Fehler gilt immer noch. Das muss bedeuten, dass ich etwas mit meinem speziellen Setup nicht verstehe. Ich muss noch einige Dinge testen und werde hier meine Ergebnisse und/oder zusätzliche Fragen posten.Danke schön, @jthi !
Re: For Each()-SyntaxIch denke, das ist ein weiteres Puzzleteil:
Es wird die Across()-Formatierung für mehrere Container verwendet.Bei der Anzahl der Werte, die ich habe, macht es Sinn, aber dies erfordert auch Across().Derzeit speichere ich eine Datentabelle in einer Matrix mit
matrix1 = dt1 << Get as Matrix();
Wie wird Across() richtig gefüllt, um entweder damit oder mit einer Datentabelle richtig zu arbeiten, da die Anzahl der Elemente in Across() gleich der Anzahl der Container (Werte) in den geschweiften Klammern sein muss?
Re: For Each()-SyntaxWas versuchst du eigentlich zu tun?Oder versuchen Sie nur, die Syntax zu verstehen?
Re: For Each()-SyntaxIch habe 3 Tabellen:
- dt1: Messwerte & Vorhersageformeln
- dt2: Zielwerte (derzeit als Matrix gespeichert):
matrix1 = dt2 << Get as Matrix();
- dt3: Tabelle zum Aufzeichnen von Koeffizienten aus der Regressionsformel des (Vorhersage-)Profiler-Tools
Was ich hoffe, ist, For Each() zu verwenden, um dt2 zu durchlaufen, die entsprechende Vorhersageformel in dt1 zu verwenden und dann die entsprechenden Koeffizienten aufzuzeichnen, die der (Prediction) Profiler generiert. Ich bin mir sicher, dass ich dies mit einer Standard-For()-Schleife tun kann, aber es wurde darauf hingewiesen, dass For Each() eine bessere Option wäre.
Re: For Each()-SyntaxIst dies nur, um absolute Werte der Vorhersage zu erhalten?Ich bin verwirrt, tut mir leid.
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: For Each()-Syntax@vince_faller , es ist alles gut! Sobald eine Vorhersageformel aus einem Datensatz (innerhalb von dt1) generiert wurde, möchte ich die ideale Lösung (innerhalb von dt2) verwenden und rückwärts arbeiten, um die Koeffizienten zu ermitteln, die zum Erhalten dieses idealen Werts (in dt3 gespeichert) erforderlich sind. Der Vorhersage-Profiler zeigt die Koeffizienten der Werte an, die dazu erforderlich sind, also müsste ich die Werte aus den Kästchen holen.
Ich habe einen Test mit der For()-Schleife, der im Hintergrund läuft, während wir sprechen.Wenn es funktioniert, kann ich For Each() für dieses Projekt komplett ausrangieren.Obwohl ich jetzt auf Probleme stoße, ermutigt es mich noch mehr zu verstehen, warum.
Betreff: For Each()-SyntaxDie Argumente haben eine andere Struktur, wenn Sie versuchen, Matrizen zu durchlaufen. Wenn Sie unter dem kleinen Pulldown-Menü im Skriptindex nachsehen, finden Sie Beispiele für die verschiedenen Konfigurationen, die die For Each()-Schleife annehmen kann.

Am besten,
M
Re: For Each()-SyntaxDanke schön, @MikeD_Anderson .Ich habe bereits über einen Tag damit verbracht, jede dieser Optionen durchzugehen, aber der Fehler, den ich im ursprünglichen Beitrag erwähnt habe, blockiert mich.
Re: For Each()-SyntaxIch denke, das Stück, das Sie in den Beispielen vermissen, ist, dass die Werte, die Sie ziehen möchten, in Form eines einzelnen Werts oder einer Liste vorliegen müssen. Damit Für jede( { val1, val2, ..., valn, index}, ...) würde nicht funktionieren, weil es zu viel Zeug in der Argumentliste gibt. Aber For each( { {val1, val2, ..., valn}, index}, ...) könnte besser funktionieren. Das entspricht auch dem Beispiel that @jthi früher bereitgestellt.
M
Re: For Each()-SyntaxHallo,
Ich habe die doppelten geschweiften Klammern bereits untersucht, aber ich stoße wie in meinem ursprünglichen Beitrag auf den Fehler "zu viele Argumente".Ich glaube das, weil ich in Across() nicht die richtige Containeranzahl angegeben habe. Ich weiß nicht, wie ich Across() richtig ausfüllen soll.
Zu diesem Zeitpunkt ist meine Alternative für die For()-Schleife sehr gut ausgebaut und sollte die Notwendigkeit der For Each()-Funktion ersetzen. Ich würde trotzdem gerne lernen, wie man es richtig benutzt, aber vielleicht werde ich diesen Thread zu einem anderen Zeitpunkt wiederbeleben. Meine Konzentration wird für eine Weile woanders gebraucht.
Vielen Dank an alle für die Diskussion!
For Each()-SyntaxHallo,
Ich möchte die Anzahl der Werte erweitern, die in der Funktion For Each() verwendet werden können.Im Skriptindex und einigen wenigen Beispielen, die ich in der JMP-Community und in JMP selbst gefunden habe, habe ich insgesamt nur einen einzigen Wert und Index gesehen: For every( { val1, index}, ... ). Ich möchte Folgendes verwenden: For every( { val1, val2, ..., valn, index}, ...) . Wenn ich die Anzahl der Werte in den geschweiften Klammern erhöhe, erscheint die Fehlermeldung „Zu viele Argumente“.
Seltsamerweise besagt diese Fehlermeldung, dass die Zeilennummer des Fehlers der Gesamtzahl der Zeilen in der Matrix entspricht, die an die Funktion For every() übergeben wird, und nicht der tatsächlichen Zeilennummer dieser Funktion im Skript. Ich kann bestätigen, dass es an der Anzahl der Werte liegt, die ich verwenden möchte, und nicht an der Anzahl der Zeilen in der Matrix, die ich an die Funktion übergebe, indem ich die Anzahl der Werte nur auf val1 & index ändere, was dann funktioniert.
Die übergebene Matrix hat die gleiche Anzahl an Spalten wie die Anzahl an Werten, die ich an die Funktion „For Each()“ übergeben möchte.
Irgendwelche Tipps? Ist das möglich?
Automatisierung und SkripterstellungQualitäts- und VerfahrenstechnikWindows