La formula del ritardo non funziona durante lo scriptHo alcuni dati sperimentali che effettuano una misurazione ogni minuto per 10 minuti.
Voglio quindi prendere una media per un sottoinsieme di punti dati nel mezzo del set.
La mia soluzione è avere una colonna nascosta (:Intervallo) con una formula che contiene i criteri (input tramite una finestra modale) e imposta ogni riga come 1 o 0 se deve essere inclusa nel calcolo.
La mia colonna di output utilizza quindi la funzione Col Mean per prendere la media dei punti di interesse.
Questa parte funziona alla grande, ma voglio anche che la prima riga vuota (non inclusa nel calcolo) prenda il valore della riga successiva, il che aiuterà con un'ulteriore manipolazione dei dati lungo la linea. Ho aggiunto la funzione Lag come di seguito.
If( :Range == 1,
Col Mean( :Measurement, :ID, :Range ),
Lag( :Measurement, -1 )
)
Il problema è che quando eseguo questo come script, la funzione Lag non funziona. Se inserisco manualmente la formula sopra funziona bene, ma lo script seguente popola solo le righe in cui :Range == 1, nonostante possa vedere che la formula è applicata correttamente alla colonna.
New Column( "Mean Measurement", Formula(
If( :Range == 1,
Col Mean( :Measurement, :ID, :Range ),
Lag( :Measurement, -1 ))))
C'è qualche motivo per questo e in qualche modo posso forzare la colonna a rivalutare la formula per funzionare correttamente?
Tabella datiSceneggiaturaRe: La formula del ritardo non funziona durante lo scriptLa funzione Lag() opera su righe specificate, non è una funzione "vettorizzata".In una funzione di colonna, la riga è implicita (la riga della tabella), quindi funziona nella formula della colonna senza problemi.
Per il tuo script, se specifichi la riga utilizzando il comando Row()== prima dell'istruzione della funzione di ritardo, il ritardo dovrebbe restituire un valore.
Row() = 3;
If( :Range == 1,
Col Mean( :Measurement, :ID, :Range ),
Lag( :Measurement, -1 )
)
Inoltre, solo per assicurarti di essere a conoscenza, l'argomento del numero di ritardo per Lag(:colonna, ), se è un numero negativo, questo è in realtà "ritardo in avanti".Nell'esempio mostrato sopra, cercherà il valore nella riga successiva, non nella riga precedente.
Re: La formula del ritardo non funziona durante lo scriptPerché esegui 10 misurazioni a intervalli di 1 minuto? Perché usi una media di poche osservazioni nel corso del tempo?
Potresti ottenere maggiori informazioni se analizzi l'intera curva come valore di risposta. Vedi il Esplora dati funzionali per più idee. È possibile analizzare un "DOE funzionale" con JMP Pro.