Einrichten einer Formel mit einem ParameterHallo,
Ich versuche, eine Formel in einer Spalte einer Tabelle zusammen mit einem Parameter in der Formel einzurichten. Das geht ganz einfach per Mausklick. Aber ich muss ein Drehbuch schreiben. Unten ist der Befehl, den ich geschrieben habe:
Column( Data Table( "field_data" ), "diameter Prediction Formula" ) << Set Formula( Parameter({tuning = 1},eval(Name Expr(f11)) ));
Meine Formel ist in „f11“ gespeichert. Die Formel wird sich ändern, daher kann ich sie nur mithilfe einer Variablen referenzieren und nicht die eigentliche Formel schreiben. Wenn ich diese Zeile ausführe, wird die Formel korrekt ausgewertet, aber wenn ich auf die Spalte klicke, um die Formel zu überprüfen, wird Folgendes angezeigt: eval(Name Expr(f11)) ". Gibt es eine Möglichkeit, die tatsächliche Formel hier einzufügen? Bitte helfen Sie. Danke!!
Betreff: Einrichten einer Formel mit einem ParameterVielen Dank, Ian!! Das funktioniert!! 

Betreff: Einrichten einer Formel mit einem ParameterJim hat gezeigt, wie man „Substitute()“ verwendet, um den Formelausdruck zu erstellen. Beachten Sie, dass Sie, um zu sehen, wie der erforderliche Ausdruck aussieht, die Formelspalte jederzeit manuell erstellen und der resultierenden Spalte eine „getScript“- oder „getFormula“-Nachricht senden können. Sie können also auf Jims Beispiel aufbauen, um Folgendes zu erhalten:
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
f11 = expr(:Height);
dt << New Column( "Column 6" );
Eval(
Substitute(
Expr(
:column 6 << set formula(tuning=2; :weight * __f11__ )
:column 6 << setFormula( Parameter( {b0 = initialValueTBD}, :weight * (__f11__ * b0) ) ),
),
Expr(initialValueTBD), 2,
Expr( __f11__ ), evalexpr(f11)
)
);
Betreff: Einrichten einer Formel mit einem ParameterDanke txnelson. Entschuldigung, ich hätte Ihnen auch den nächsten Schritt meiner Analyse mitteilen sollen, da es für mich wichtig ist, den Parameter auf die zuvor erwähnte Weise zu definieren.
Ich führe eine nichtlineare Regression unter Verwendung der Spalte mit der Formel (und dem Parameter) durch. Wenn ich nun den Parameter so definiere, wie Sie ihn in Ihrem Code definiert haben, berücksichtigt die nichtlineare Regression „Tuning“ nicht als Parameter, den es zu optimieren gilt. Es wird es als ein betrachten fester Wert.Daher erhalte ich nicht den optimierten Wert von „Tuning“. Wenn ich andererseits „Tuning“ als Parameter definiere, dann liefert mir die nichtlineare Regression den Wert des Parameters „Tuning“, der die Quadratsumme minimiert.
Lassen Sie mich also bitte wissen, ob es eine Möglichkeit gibt, den Parameter „Tuning“ in derselben Spalte so zu definieren, dass die nichtlineare Regression ihn als einen Parameter betrachtet, der optimiert werden muss, und nicht als festen Wert. Danke!!
Tut mir leid, dass ich es nicht früher klargestellt habe.
Betreff: Einrichten einer Formel mit einem ParameterEin Parameter legt lediglich einen Speichervariablenwert in der Formel fest, der emuliert werden kann, indem einfach dieser Code in die Formel eingefügt wird.Sehen Sie sich meine neue Variante der Formel an
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
f11 = expr(:Height * tuning);
dt << New Column( "Column 6" );
Eval(
Substitute(
Expr(
:column 6 << set formula(tuning=2; :weight * __f11__ )
),
Expr( __f11__ ), evalexpr(f11)
)
);Betreff: Einrichten einer Formel mit einem ParameterDanke txnelson, Ich verstehe deinen Code. Aber mein Problem hat noch eine weitere Sache. Ich muss auch einen Parameter in meiner Formel festlegen. Lassen Sie es mich anhand des von Ihnen bereitgestellten Beispielcodes erklären. Die Formel in Spalte 6 wurde Ihnen erfolgreich zugeordnet. Danach benötige ich nun auch ein Skript, um Folgendes zu tun, was per Mausklick wie folgt erledigt werden kann:
1) Klicken Sie mit der rechten Maustaste auf Spalte 6. Gehen Sie zu „Formel.“
2) Wählen Sie „Parameter“ aus dem Dropdown-Menü (nahe der unteren linken Ecke)
3) Klicken Sie auf „Neuer Parameter“
4) Weisen Sie dem Parameter einen Namen und einen Wert zu
5) Klicken Sie auf OK
Bitte lassen Sie mich wissen, ob dies möglich ist. Danke!!
Betreff: Einrichten einer Formel mit einem ParameterSie müssen die Auswertung in der Formel erzwingen, und ich habe herausgefunden, dass der einfachste Weg, dies zu tun, die Verwendung von Substitute() ist.
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
f11 = ":Height";
dt << New Column( "Column 6" );
Eval(
Substitute(
Expr(
:column 6 << set formula( :weight * __f11__ )
),
Expr( __f11__ ), Parse( f11 )
)
);