Ich habe einige experimentelle Daten, die 10 Minuten lang jede Minute eine Messung durchführen.
Ich möchte dann einen Durchschnitt für eine Teilmenge von Datenpunkten in der Mitte der Menge nehmen.
Meine Lösung besteht darin, eine versteckte Spalte (:Range) mit einer Formel zu haben, die die Kriterien enthält (Eingabe über ein modales Fenster) und jede Zeile entweder auf 1 oder 0 setzt, wenn sie in die Berechnung einbezogen werden soll.
Meine Ausgabespalte verwendet dann die Col Mean-Funktion, um den Durchschnitt der Points of Interest zu ermitteln.
Dieser Teil funktioniert hervorragend, aber ich möchte auch, dass die erste leere Zeile (nicht in der Berechnung enthalten) den Wert der nächsten Zeile übernimmt, was bei der weiteren Datenmanipulation auf der ganzen Linie hilfreich sein wird. Ich habe die Verzögerungsfunktion wie folgt hinzugefügt.
If( :Range == 1,
Col Mean( :Measurement, :ID, :Range ),
Lag( :Measurement, -1 )
)
Das Problem ist, dass die Lag-Funktion nicht funktioniert, wenn ich dies als Skript ausführe. Wenn ich die obige Formel manuell eingebe, funktioniert es einwandfrei, aber das folgende Skript füllt nur Zeilen mit :Range == 1, obwohl ich sehen kann, dass die Formel korrekt auf die Spalte angewendet wird.
New Column( "Mean Measurement", Formula(
If( :Range == 1,
Col Mean( :Measurement, :ID, :Range ),
Lag( :Measurement, -1 ))))
Gibt es dafür einen Grund und kann ich die Spalte dazu zwingen, die Formel neu zu bewerten, damit sie ordnungsgemäß ausgeführt wird?