So berechnen Sie gleitende Durchschnitte für ausgewählte ZeilenHallo zusammen!
Ich versuche, ein Skript zu schreiben, das gleitende Durchschnitte anhand ausgewählter Zeilen in einer Tabelle berechnet.
So bereiten Sie die Bühne:
Ich habe eine Datentabelle (Beispiel beigefügt) mit mehreren Ausführungen (eindeutige ID) eines dreistufigen Prozesses (A, B, C). Für jede Stufe wird ein Wert gemeldet, und diese Werte werden summiert, um für jeden Vorgang einen Gesamtwert zu erhalten. Ich hätte gern eine Spalte, die einen gleitenden Durchschnitt des Gesamtwerts angibt. Ich habe mir einige der Diskussionen durchgelesen und einige gute Tipps dazu bekommen (d. h. gleitende Durchschnitte für jede eindeutige ID ... DIESES Beispiel hat geholfen , und die Formel lautet: Gleitender Durchschnitt (eindeutige ID).
Der nächste Schritt, den ich machen möchte, besteht darin, NUR eine Teilmenge der Läufe in diese Auswertung einzubeziehen. Die Läufe sind rot hervorgehoben und das gewünschte Ergebnis (in diesem Fall der gleitende Durchschnitt von nur drei Gelegenheiten) befindet sich unter :Gewünschtes Ergebnis.
Ich habe Probleme mit dem Skript, die Teilmenge der Läufe zur Auswertung auszuwählen.
Außerdem bin ich relativ neu bei JSL und würde mich auch über Vorschläge freuen, wie ich sauberer oder effizienter zum Endergebnis gelangen kann.
Vielen Dank im Voraus für Ihre Hilfe!
Chris
Automatisierung und SkriptingGrundlegende Datenanalyse und ModellierungDatenzusammenführung und -bereinigungBetreff: So berechnen Sie gleitende Durchschnitte für ausgewählte ZeilenWorauf basiert die Auswahl dieser drei Zeilen?
Betreff: So berechnen Sie gleitende Durchschnitte für ausgewählte ZeilenJarmo,
Dieser Vorgang wird in zwei verschiedenen Einstellungen ausgeführt: Eine Einstellung ist für die Entwicklung und die andere für die „offizielle“ Verwendung (falls das Sinn ergibt).
und diese drei Linien stellen Letzteres dar. Für den gleitenden Durchschnitt möchte ich die Entwicklungsläufe nicht einschließen. Ich möchte jedoch alle Daten in das Tracking-/Trendblatt einschließen, damit ich eine „einzige Quelle der Wahrheit“ habe, die alle Einstellungen/Operatoren usw. darstellt. Das beigefügte Blatt stellt nur einen minimalen Satz an Informationen dar, um die Anfrage für die JMP-Community zu beantworten.
Ich habe im Laufe der Jahre ähnliche Datensätze erstellt und habe erst vor kurzem begonnen, mit JSL zu arbeiten, um effizientere Arbeitsabläufe zu entwickeln. Ich habe allerdings keine Programmierkenntnisse, also stehe ich noch vor einer steilen Lernkurve. Diese Gruppe war wirklich hilfreich!
Chris
Betreff: So berechnen Sie gleitende Durchschnitte für ausgewählte ZeilenIch frage mich nur, wie man die richtigen Zeilen auswählt, die von Interesse sind. Geschieht dies auf der Grundlage von Farben oder Zellen in bestimmten Spalten? Wählt man die Zeilen manuell aus und berechnet dann den gleitenden Durchschnitt aus diesen ausgewählten Zeilen?
Sie können beispielsweise eine Gruppierungsspalte angeben und diese dann verwenden
If(!Is Missing(:Group),
Col Moving Average(As Column("Total (Sum of Stages for each Unique ID)"), 1, :Group),
.
)

Sie können auch eine Teilmenge nur dieser Zeilen erstellen (vielleicht eine verknüpfte), um die Berechnung noch einfacher zu machen (Bearbeiten: Dies funktioniert nicht mit verknüpften Teilmengen, auch wenn es in der Vorschau so aussieht).
Col Moving Average(As Column("Total (Sum of Stages for each Unique ID)"), 1)

Col Moving Average (Name, Optionen, ) kann gut gelesen werden, da es eine der verwirrendsten Formelfunktionen ist
Betreff: So berechnen Sie gleitende Durchschnitte für ausgewählte ZeilenAhh...jetzt verstehe ich Ihre Frage.
Ich dachte daran, Zeilen auszuwählen, bei denen :To Include == Yes ist. Gibt es einen besseren Weg?
Ich werde mir die Dokumentation durchlesen … Die Funktion hat mich auf jeden Fall verwirrt!
Chris
Betreff: So berechnen Sie gleitende Durchschnitte für ausgewählte Zeilenah ... Sie möchten also den gleitenden Spaltendurchschnitt berechnen, um Zeilen einzuschließen, ihn aber nur in der letzten Zeile jeder eindeutigen ID melden?

Beachten Sie, dass dadurch der gleitende Durchschnitt unter Verwendung ALLER Werte in den Gruppen berechnet wird, nicht nur der letzten Werte. Dieser wird jedoch in der letzten Zeile gemeldet (entfernen Sie die if-Anweisung, um zu sehen, was sie wirklich bewirkt).
If(:To Include == "Yes" & Row() == Col Max(Row(), :Unique ID),
Col Moving Average(:"Total (Sum of Stages for each Unique ID)"n, 1, :To Include),
.
)

Sie können die Berechnung auch nur auf Basis der letzten Zeilen durchführen, aber die Berechnung wird dadurch langsamer und schwieriger zu lesen.
If(:To Include == "Yes" & Row() == Col Max(Row(), :Unique ID),
Col Moving Average(
If(Row() == Col Max(Row(), :Unique ID),
:"Total (Sum of Stages for each Unique ID)"n,
.
),
1,
:To Include
),
.
)
Diese sind am einfachsten zu verstehen, wenn man sie in viele separate Formeln aufteilt
Betreff: So berechnen Sie gleitende Durchschnitte für ausgewählte ZeilenVielen Dank! Ich werde anfangen, damit zu spielen.
C