La formula non funziona all'interno di un ciclo FORCiao,
lavorando con un cliente che mira ad automatizzare la raccolta dei dati da vari studi clinici, abbiamo utilizzato il registratore di azioni per ottenere le linee di script appropriate.
Ora sto semplificando lo script usando list e loop per renderlo generico per un utilizzo più ampio.
Sono stato in grado di farlo fino alla riga 58. Alle righe 58-61 provo a riprodurre ciò che accade con le righe 63-100 utilizzando un ciclo FOR e una formula come mostrato di seguito:
For( i = 1, i <= N Items( colList ), i++,
Data Table( "Summary with Dose=0" ) <<
New Column( colList_Sum_3[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
formula( colList_Sum_1[i] - colList_Sum_2[i] )
)
);
Crea le colonne appropriate (basate su un elenco) ma non le formule in ogni colonna.
Ho provato con Eval/Expr ma devo ammettere che non so come e quando usarli.
Grazie per l'aiuto.
Emanuele
Re: La formula non funziona all'interno di un ciclo FORQuesto fa quello che avevi in mente? Potresti riuscire a farlo senza usare la gestione delle espressioni, ma trovo che questo approccio sia più robusto, in particolare quando devi gestire nomi di colonne problematici (ad esempio, quando hai un operatore matematico o una parola riservata statistica). L'idea è di trattare i due argomenti del messaggio Join che necessitano delle colonne come espressioni, costruirli inserendo riferimenti di colonna al loro interno (non usare nomi a causa del problema che ho menzionato sopra), quindi inserirli nel Giuntura messaggio con Sostituire (che puoi inserire espr quindi anche l'espressione viene valutata). Un tema ricorrente è l'uso di Nome Espr per evitare che la variabile con cui stai lavorando venga valutata completamente (cioè, se vuoi trattare il contenuto della variabile come un'espressione, non sei interessato al suo valore valutato). Spero questo sia di aiuto.
assistente
Re: La formula non funziona all'interno di un ciclo FORCiao Emanuele,
Sei solo di un po' fuori. Prova lo script allegato. Sembra funzionare sui tuoi dati di esempio.Le correzioni sono commentate come //Prova invece. Il tuo codice originale è commentato.
Migliore,
Jason
Re: La formula non funziona all'interno di un ciclo FORRipubblicato con script corretto
Re: La formula non funziona all'interno di un ciclo FORCiao Don, hai cambiato qualcosa nello script? Immagino tu copi/incolli quello originale senza alcuna modifica o me lo sono perso.
Re: La formula non funziona all'interno di un ciclo FORCiao Jason,
restituisce colonne contenenti una formula: Column( colList_Sum_1[i] ) - /*###*/Column( colList_Sum_2[i] ) /*###*/
ma non viene eseguito alcun calcolo.
Emanuele
Re: La formula non funziona all'interno di un ciclo FORScusa Emanuele,
Inizialmente postato lo script originale. Ripubblicato con lo script modificato.
assistente
Re: La formula non funziona all'interno di un ciclo FORTutto dovrebbe funzionare fino alla riga 76 nel mio script modificato. Sembra che oltre a questo, potresti risolvere il problema nello stesso modo in cui hai fatto con i loop sopra?Mi piace la gestione delle espressioni di Don per il join. Questo vale la pena considerare. Devi ancora occuparti degli elenchi di colonne e dei nomi delle colonne, quindi forse potresti prendere idee da entrambi i nostri script.Invierò un aggiornamento più tardi oggi con una correzione per le 37 righe inferiori del tuo script.
Re: La formula non funziona all'interno di un ciclo FORCiao Jason,
nello script modificato le righe 69-76 non restituiscono alcun calcolo
For( i = 1, i <= N Items( colList ), i++,
Data Table( "Summary with Dose=0" ) << New Column( colList_Sum_3[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
formula( Column( colList_Sum_1[i] ) - Column( colList_Sum_2[i] ) )
)
);
Per chiarimenti le righe 69-76 (58-61 nella sceneggiatura originale) mirano a sostituire le righe 78-115 (63-100 nella sceneggiatura originale).
Il resto della sceneggiatura è OK, è sulle righe 69-76 (58-61 nella sceneggiatura originale) che sono bloccato.
Re: La formula non funziona all'interno di un ciclo FORCiao Don, ho seguito l'e-learning sullo scripting ma ho difficoltà a capire Eval, Expr, NameExpr, ... per caso avresti qualche corso complementare, documentazione che potrebbe aiutare?