Derzeit erstellt Action Recorder durch die Verwendung von Tabellennamen und dergleichen einen recht unrobusten Code. Der neue Workflow Builder kann Referenzersetzungen anbieten, aber ich würde gerne noch einen Schritt weiter gehen und eine Option haben, bei der Action Recorder Variablennamen verwenden würde. Diese sollten vom Benutzer konfigurierbar sein. In diesem Fall sollte auch ein Namespace verwendet werden, entweder ein bestimmter oder hier (fügen Sie „Names Default To Here(1)“ oben im Skript hinzu).
Unten sehen Sie ein recht einfaches Beispiel, das mit Big Class und Enhanced Log erstellt wurde
/*:
// Open Data Table: Big Class.jmp
// → Data Table("Big Class")
Open("/C:/Program Files/SAS/JMPPRO/16/Samples/Data/Big Class.jmp");
// New formula column: Log[weight+1]
Data Table("Big Class") << New Formula Column(
Operation(Category("Log"), "Log x+1"),
Columns(:weight)
);
// New formula column: Random Uniform
Data Table("Big Class") << New Formula Column(
Operation(Category("Random"), "Random Uniform"),
Columns(:sex, :height)
);
// Report snapshot: Big Class - Graph Builder
Data Table("Big Class") << Graph Builder(
Size(528, 448),
Show Control Panel(0),
Variables(X(:sex), Y(:"Log[weight+1]"n)),
Elements(Points(X, Y, Legend(4)))
);
Es wäre schön, wenn dies im Protokoll geschrieben werden könnte als (das wird nicht funktionieren, da es so aussieht, als würde << Neue Formelspalte keinen Verweis auf die Spalte zurückgeben, wie dies bei << Neue Spalte der Fall ist, aber die Idee ist immer noch dieselbe)
// Open Data Table: Big Class.jmp
// → Data Table("Big Class")
dt_1 = Open("/C:/Program Files/SAS/JMPPRO/16/Samples/Data/Big Class.jmp");
// New formula column: Log[weight+1]
col_1 = dt_1 << New Formula Column(
Operation(Category("Log"), "Log x+1"),
Columns(:weight)
);
// New formula column: Random Uniform
col_2 = dt_1 << New Formula Column(
Operation(Category("Random"), "Random Uniform"),
Columns(:sex, :height)
);
// Report snapshot: Big Class - Graph Builder
rep_1 = dt_1 << Graph Builder(
Size(528, 448),
Show Control Panel(0),
Variables(X(:sex), Y(col_1)),
Elements(Points(X, Y, Legend(4)))
);
Und in diesem Beispiel sind dt_, col_ und rep_ die Variablennamenpräfixe, die der Benutzer für diese spezifischen Objekttypen ausgewählt hat.
Dies sollte automatisch generierte Skripte etwas robuster machen
Vielen Dank, dass Sie diese Anfrage eingereicht und ein Beispiel bereitgestellt haben! Wir haben dies dokumentiert und werden Ihre Idee @jthi prüfen