Hallo zusammen,
Beim Übergeben des Befehls <
Der Codeabschnitt, mit dem ich Schwierigkeiten habe, ist der folgende:
report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( Eval( YCols ) ),
In( :Simulated Y )
);
Das Ausführen dieses Codeabschnitts führt zu folgendem Fehler: Die auszutauschende Spalte wurde nicht gefunden. und öffnet dann das Fenster, in dem Sie die Spalten auswählen sollen, die ein- und ausgeblendet werden sollen.
„report_of_interest“ ist das Berichtsfenster, in das ich den Simulate-Befehl sende. Speziell für NumberColBox(8), die Spalte „Schätzung“ im Bericht. NBSnum und RSnum sind die Anzahl der auszuführenden Bootstrap-Proben und eine zufällige Startvariable. Das Problem ist der Name der Spalte im Out( ) des Simulate( )-Befehls. Die In( )-Spalte ist kein Problem, da ich die simulierte Datenspalte nach Belieben benennen kann, aber die Spalte für die Out( )-Option ist keine Spalte, die ich wirklich umbenennen möchte oder so etwas. In diesem Fall speichere ich die simulierten Daten in der Datentabelle und benenne die Spalte in „Simulated Y“ um, damit ich sie bei Bedarf im Simulate-Befehl als In(:Simulated Y) referenzieren kann.
Zu Beginn des Codes wird der Benutzer aufgefordert, die Spalte auszuwählen, die als Antwortspalte für die Modellierung dienen soll. Dies ist YCols. Wenn Sie mit einer Spalte in einer Plattform arbeiten, können Sie sie oft einfach als Eval(YCols) und festlegen es akzeptiert es problemlos, zum Beispiel:
fm = avdt << Fit Model(
Y( Eval( YCols ) ),
Validation( :Validation ),
Effects( :Null Factor, Eval( XCols ) ),
Personality( "Generalized Regression" ),
Run( Fit( Estimation Method( Forward Selection ), Validation Method( Validation Column ) ) )
);
Führt ein Anpassungsmodell für die Y( )-Spalte korrekt aus. Der Befehl „Simulate( )“ möchte jedoch, dass die Spalte als bereichsbezogene Spalte referenziert wird, wie er es auch haben möchte, zum Beispiel :My Column To Model.
Nehmen wir an, dass die Spalte den Namen „My Column To Model“ hat, sodass die Variablen YCols und Eval(YCols) beide das folgende {„My Column To Model“} zurückgeben. Wenn der Simulationsbefehl an den Bericht gesendet wird, benötigt er den bereichsbezogenen Spaltennamen, etwa den folgenden:
report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( :My Column To Model ),
In( :Simulated Y )
);
Das Problem ist, dass sich die Spalte, die ich modelliere, ändern kann, daher ändert sich ihr Name, und ich möchte die Spalte nicht so umbenennen, dass sie immer einen festen Namen wie :YData hat. Ich möchte mit einer Variablen wie YCols arbeiten, weiß aber nicht, wie ich mit dem Infix-Doppelpunktoperator (:) und einer Variablen wie YCols arbeiten soll, um den richtigen Spaltenverweis für den Befehl Simulate( ) zu erhalten.
Ich habe es versucht: As Column(dt, name), Column(dt, name), Column(number), Parse(":"||char(Column(avdt, Eval(YCols)))), Parse(":" ||Eval(YCols)[1]), und nichts davon funktioniert. Sie führen alle zu demselben oben erwähnten Fehler und öffnen ein neues Fenster, in dem Sie die Spalten auswählen können, die ein-/ausgetauscht werden sollen, wodurch die Automatisierung, die ich durchführen möchte, zunichte gemacht wird.
Jede Hilfe wird sehr geschätzt.
Danke!,
DS