Neue Spalte mit als Variable in einem Skript gespeicherter Formel erstellenIch verwende ein Skript, um eine vorhergesagte Formel aus vorhandenen Daten zu extrahieren. Anschließend ändere ich diese Formel durch Substitution und möchte nun mit der geänderten Formel eine neue Spalte erstellen. Ich denke, das ist einfach, aber beim Versuch, das Skript zu erstellen, wird die als Variable gespeicherte Formel nicht erkannt. Für jede Hilfe wäre ich sehr dankbar. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.
//Script that just shows saving the formula as a variable fm and modifying the variable using substitute to fm2
fm = report(obj1)[OutlineBox("Polynomial ?")][TextEditBox(1)] << get text;
//get the string to the right of the equal sign and convert the string to an expression using Parse()
fm = Parse(Trim(word(2, fm, "=")));
fm2 = Substitute(NameExpr(fm), EvalExpr(LnTime2), EvalExpr(log(Time2)));
//Script to create a new column with the fm2 formula that does not work
dt << New Column( "Predicted", Numeric, Formula (fm2));
//Hier ist, was im Protokoll zurückgegeben wird, wenn Sie fm2 im Skript drucken
Drucken(fm2);
(-0,270568) + 0,0352458 * Log(Zeit2) - 0,0331127 * (Log(Zeit2) - 7,22484) ^ 2 + 0,0046766 * (Log(Zeit2) - 7,22484) ^ 3 + 0,0075752 * (Log(Zeit2) - 7,22484) ^ 4 + 0,0012501 * (Log(Zeit2) - 7,22484) ^ 5 + 0,000026534 * (Log(Zeit2) - 7,22484) ^ 6
Erweiterte statistische ModellierungKonsumenten- und MarktforschungInhaltsorganisationDatenzusammenführung und -bereinigungDatenexploration und -visualisierungMassenanpassungQualitäts- und ProzesstechnikErgebnisse teilen und kommunizierenBetreff: Neue Spalte mit Formel erstellen, die als Variable in einem Skript gespeichert istDanke schön!
Betreff: Neue Spalte mit Formel erstellen, die als Variable in einem Skript gespeichert istVielen Dank für den Tipp, die Formel als Zeichenfolge beizubehalten und hinzuzufügen ::, um JMP wissen zu lassen, ob es sich um eine Spalte handelt. Ich konnte eval(parse()) nicht zum Laufen bringen, ich war mir nicht sicher, warum das doppelte Anführungszeichen auch hier benötigt wurde.
Betreff: Neue Spalte mit Formel erstellen, die als Variable in einem Skript gespeichert istIch würde die Formel als Zeichenfolge beibehalten, darin ersetzen und ein „:“ hinzufügen, um JMP mitzuteilen, dass Sie es mit einer Spalte zu tun haben, und diese dann verwenden
eval(parse())
um es auszuführen.Hier ist ein einfaches Beispiel
names default to here(1);
dt=current data table();
fm="height";
fm2 = substitute(fm, expr("height"), "log(:height)");
eval(parse("dt << new column (\!"predicted\!",numeric,formula(" || fm2 || "));"));Betreff: Neue Spalte mit Formel erstellen, die als Variable in einem Skript gespeichert istVersuchen Sie stattdessen Folgendes:
Eval(
Substitute(
Expr( dt << New Column( "Predicted", Numeric, Formula ( fff ) ) ),
Expr( fff ), Name Expr( fm2 )
)
);