Ciao a tutti,
Problemi con il riferimento corretto a una colonna quando si passa il comando <
La sezione di codice con cui ho difficoltà è la seguente:
report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( Eval( YCols ) ),
In( :Simulated Y )
);
L'esecuzione di quella sezione di codice genera il seguente errore: Colonna da disattivare non trovata. e poi si apre la finestra in cui dovresti selezionare le colonne per entrare e uscire.
Report_of_interest è la finestra del report in cui invio il comando Simulate. Nello specifico a NumberColBox(8), che è la colonna Stima nel report. NBSnum e RSnum sono il numero di campioni bootstrap da eseguire e una variabile seed casuale. Il problema è il nome della colonna nel comando Out() del comando Simulate(). La colonna In() non è un problema perché posso nominare la colonna di dati simulati come voglio, ma la colonna per l'opzione Out() non è una colonna che voglio veramente rinominare o altro. In questo caso, salvo i dati simulati nella tabella dati e rinomino la colonna in "Simulated Y" in modo da potervi fare riferimento come necessario nel comando Simulate come In(:Simulated Y).
All'inizio del codice, all'utente viene richiesto di selezionare la colonna che sarà la colonna di risposta per la modellazione, questa è YCols e spesso, quando si ha a che fare con una colonna in una piattaforma, è possibile impostarla semplicemente come Eval(YCols) e lo accetta bene, ad esempio:
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 ) ) )
);
Eseguirà correttamente un modello di adattamento sulla colonna Y( ). Tuttavia, il comando Simulate() vuole che la colonna venga referenziata come colonna con ambito, credo, come vuole che sia, ad esempio :My Column To Model.
Supponiamo che la colonna abbia il nome "La mia colonna da modellare", quindi la variabile YCols e Eval(YCols) restituiranno entrambe quanto segue: {"La mia colonna da modellare"}. Quando si invia il comando di simulazione al report, è necessario il nome della colonna con ambito, come il seguente:
report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( :My Column To Model ),
In( :Simulated Y )
);
Il problema è che la colonna che sto modellando può cambiare, quindi il suo nome cambia e non voglio rinominare la colonna in modo che abbia sempre un nome fisso come :YData. Desidero lavorare con una variabile come YCols, ma non so come lavorare con l'operatore infisso due punti (:) e una variabile come YCols per avere il riferimento di colonna corretto per il comando Simulate().
Ho provato As Column(dt, name), Column(dt, name), Column(number), Parse(":"||char(Column(avdt, Eval(YCols)))), Parse(":" ||Eval(YCols)[1]) e nessuno di questi funziona. Risultano tutti nello stesso errore menzionato sopra e aprono una nuova finestra per selezionare le colonne da scambiare In/Out, il che annulla l'automazione che sto cercando di fare.
Ogni aiuto è molto apprezzato.
Grazie!,
DS