Skriptfrage für WiederholungsformelnIch habe diese Frage in einem früheren Beitrag gestellt, aber das war vor ein paar Wochen, so dass es möglicherweise nicht bemerkt wird.Ich vermute, dass dies eine einfache Skriptfrage für diese Gruppe ist.Unten ist ein Skript (gespendet von Frank), das erfolgreich eine Monte-Carlo-Simulation für eine schrittweise Regression ausführt.Das einzige, was es nicht getan hat, war, eine Reihe von Spalten neu zu berechnen, in denen ich Zufallszahlen in Formeln habe, bevor ich die schrittweise Regression durchführte.Der Befehl <
Mein erfolgloser Versuch ist Zeile 19 im Skript.Danke.
Clear Globals();
Clear Log();
Names Default To Here( 1 );
//Define path in and out
Path_in = Pick File( "Select file" );
If( Directory Exists( "$Desktop\Fit_Stepwise" ),
,
Create Directory( "$Desktop\Fit_Stepwise" )
);
Path_out = "$Desktop\Fit_Stepwise\";
//Run Fit model and stepwise after open datatable
dt = Open( Path_in );
For( i = 1, i <= 1000, i++,
dt << Rerun Formulas;
ow = dt << Fit Model(
Y( :Y ),
Effects(
:Column 2 001,
:Column 2 002,
:Column 2 003,
:Column 2 004,
:Column 2 005,
:Column 2 006,
:Column 2 007,
:Column 2 008,
:Column 2 009,
:Column 2 010
),
Personality( "Stepwise" ),
Run,
SendToReport( Dispatch( {}, "Step History", OutlineBox, {Close( 1 )} ) )
);
dt_result = Report( ow )[Outline Box( "Stepwise Fit for Y" )][Outline Box( "Current Estimates" )][Table Box( 1 )] << Make Into Data Table;
dt_result << save( Path_out || Char( i ) || ".csv", "csv" );
ow << close window;
dt_result << Close Window;
);
dt << Close Window;
dt_result = Multiple File Import(
<<SET folder="">F\!"" ) > 0.05 ) ) << Delete Rows;
dt_result << Distribution( Stack( 1 ), Nominal Distribution( Column( :Parameter ), Horizontal Layout( 1 ), Vertical( 0 ) ) );</SET>SkripterstellungBetreff: Skriptfrage für WiederholungsformelnWiederholungsformeln sollten funktionieren, vielleicht müssen Sie irgendwo wait(0) hinzufügen? Ohne die Datentabelle zu sehen, ist es etwas schwierig zu testen, wo das Problem liegen könnte (Zeilenanzahl, Spaltenanzahl, komplizierte Formeln, Zufallsstartwert, der sich aus irgendeinem Grund nicht ändert).
Mit diesem einfachen Beispiel scheinen die Werte gut aktualisiert zu werden:
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
New Column("Column1", Numeric, "Continuous", Format("Best", 12), Formula(Random Normal(1, 1))),
New Column("Column2", Numeric, "Continuous", Format("Best", 12), Formula(Random Normal(2, 1)))
);
For(i = 1, i <= 3, i++,
dt << Rerun Formulas;
Show(dt:Column1 << get as matrix);
Show(dt:Column2 << get as matrix);
fm = dt << Fit Model(
Y(:Column1),
Effects(:Column2),
Personality("Stepwise"),
Run,
SendToReport(Dispatch({}, "Step History", OutlineBox, {Close(1)}))
);
dt_result = Report(fm)[Outline Box("Stepwise Fit for Column1")][Outline Box("Current Estimates")][Table Box(1)] << Make Into Data Table;
fm << close window;
//dt_result << Close Window;
);Betreff: Skriptfrage für WiederholungsformelnIch habe die Datei angehängt.Es sieht so aus, als hätte ich Rerun Formulas an der richtigen Stelle eingefügt, aber es funktioniert nicht.Wie und wo geht Wait?
Betreff: Skriptfrage für WiederholungsformelnUm sicherzustellen, dass die Spalte ausgewertet wird, fügen Sie dies vor der For-Schleife hinzu (wenn Sie eine frühere Version als JMP16 verwenden, ändern Sie For Each in For):
For Each({col_name}, dt << get column names(String),
Column(dt, col_name) << suppress eval(False)
);
In der von mir geöffneten Tabelle hatte die Formelspalte die Auswertung unterdrückt, aber es könnte nur ein Sicherheitsfeature bei heruntergeladenen Dateien sein.
Wenn Sie wait(0) hinzufügen müssen, können Sie mit anfangs etwas übertreiben und es fast nach jeder Zeile innerhalb der for-Schleife hinzufügen. Normalerweise ist es in JMP nicht erforderlich, aber es gibt einige Fälle, in denen es erforderlich ist.