Media corrente per serie di dati utilizzando For Loop e lo stesso script su più colonne<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Sto eseguendo una media mobile a tre punti [MA] in serie di dati di lunghezza fissa, e raccolta a intervalli di tempo fissi [cioè, una serie di 150 punti dati raccolti ogni 30 minuti per settimane al momento]. Un MA tradizionale unirebbe due serie di dati insieme, quindi ho finito per aggiungere una nuova colonna con serie di dati [numeri incrementali usando "Sequenza (,,,)"] e usandola come limitatore per l'intervallo in cui deve essere eseguito l'MA. Lo script funziona ed è abbastanza semplice, ma voglio usarne uno più efficace.
C'è un modo per farlo usando un For Loop in cui "i" è l'ID della serie di dati?
Come posso eseguire lo stesso script su più colonne senza dover cambiare il nome della variabile?
Questo è lo script che sto usando attualmente:

| Se (: Ora> 1 &: Tempo <149, |
Significare(
: T1_F [Row () - 1, Empty ()],
: T1_F [Row (), Empty ()],
: T1_F [Row () + 1, Empty ()],),
.)
Dove "T1_F" è la mia variabile Y per lisciare, e ho un paio di centinaia di Y per lisciare.
Qualsiasi consiglio sarebbe apprezzato.
-JGL
Ri: media per serie di dati utilizzando For Loop e lo stesso script su più colonneCiao JGL,
Una soluzione è creare un ciclo usando Eval (Parse (Eval Insert ())) per inserire le colonne desiderate in una formula. Di seguito è riportato uno script di esempio.
// Esempio.
Nomi predefiniti qui ( 1 ) ;
bigClass = Aperto ( "$ SAMPLE_DATA / Big Class.jmp" ) ;
colList = Elenco ( : altezza , : peso ) ; // Colonne per creare medie mobili.
Per ( io = 1 , io <= Lunghezza ( colList ) , io ++,
col = Colonna ( colList [ io ] ) ;
colName = concat ( "MA (" , colList [ io ] << Ottieni il nome () , ")" ) ;
Eval (
analizzare (
Eval Insert (
"bigClass << Nuova colonna (\!" ^ colNome ^ \! ",
Numerico,
Continuo,
Formato (\! "Miglior \!", 12),
Formula (Mean (As Column (^ col ^) [Row () -1, Empty ()],
As Column (^ col ^) [Row (), Empty ()],
As Column (^ col ^) [Row () + 1, Empty ()]))); "
)
)
) ;
) ;