Teilmenge einer Liste anhand verschiedener BedingungenIch habe eine Liste täglicher gleitender Durchschnitte, die aus 5-Minuten-Daten berechnet wurden. Obwohl es mir gelungen ist, diese Liste erfolgreich zu erstellen, kann ich anscheinend nicht herausfinden, wie ich in der Liste feststellen kann, wann bestimmte Bedingungen erfüllt sind, und wie ich dann eine neue Datentabelle erstellen kann, die das Datum enthält, an dem diese Bedingungen erfüllt sind. Der folgende Code erfasst die Daten, die jedem Datensatz in der ma_list entsprechen, nicht nur die Daten, die der angegebenen Bedingung entsprechen. Ist es möglich, bei der Arbeit mit Listen „komplexe“ Bewertungskriterien zu erstellen, und wenn ja, wie könnte dieser JSL-Code aussehen? Für Vorschläge wäre ich sehr dankbar.
ma_list = [46.6, 51.6, 50.8, 52.8, 58.4, 57.6, 62.2, 62.2, 66.6, 63.8, 59.6, 55.6, 57.2, 57.8,
57.4, 59.8, 65.4, 62, 54.6, 51.8, 50, 45.2, 44.2, 42.2, 45.8, 47.8, 52.4, 55.6, 57,
44.4, 34, 20.2, 9.4, 0.4, 0, 0, 0, 0, 0, 4.4, 11, 18, 25.4, 32.4, 36.6, 38.2, 40.2,
44.6, 44, 41.4, 39, 38.4, 33, 33.8, 39.2, 40.4, 37.8, 37.6, 36.4, 31, 30,
30.3333333333333]
// Locate dates when data shifted from 0 to a positive value
// NOTE: :Date refers to existing column name in data table ma_list was extracted from.
ma_date_list = {};
For( i = 2, i <= N Items( ma_list ), i++,
If ( ma_list[i] > 0 & ma_list[i-1] == 0,
// then
ma_date_list = :Date[ma_row_list]
)
);
Betreff: Teilmenge einer Liste anhand verschiedener BedingungenMark,
Something like the following
ma_date_list = {};
For( i = 2, i <= N Items( ma_list ), i++,
If ( ma_list[i] > 0 & ma_list[i-1] == 0 & ma_list[i-2] == 0 & ma_list[i-3] == 0,
// then
ma_date_list = :Date[ma_row_list]
)
);
Betreff: Teilmenge einer Liste anhand verschiedener BedingungenWas meinen Sie mit „Vorwärts- und Rückwärtsbewertung“? In einem JMP-Skript ist alles möglich!
Betreff: Teilmenge einer Liste anhand verschiedener BedingungenDanke Mark für den Vorschlag,
Ich hatte gehofft, wir könnten einige komplexe Vorwärts- und Rückwärtsauswertungen der Matrix durchführen, aber jetzt sehe ich, dass das nicht ganz möglich ist. Ihr Vorschlag trägt sicherlich dazu bei, die Bewertung zu erhalten, die ich brauchte, und zeigt mir gleichzeitig, wie ich so etwas in Zukunft angehen kann. Danke.
Betreff: Teilmenge einer Liste anhand verschiedener BedingungenSehen Sie, ob dieser Ansatz hilft:
ma_list = [46.6, 51.6, 50.8, 52.8, 58.4, 57.6, 62.2, 62.2, 66.6, 63.8, 59.6, 55.6, 57.2, 57.8,
57.4, 59.8, 65.4, 62, 54.6, 51.8, 50, 45.2, 44.2, 42.2, 45.8, 47.8, 52.4, 55.6, 57,
44.4, 34, 20.2, 9.4, 0.4, 0, 0, 0, 0, 0, 4.4, 11, 18, 25.4, 32.4, 36.6, 38.2, 40.2,
44.6, 44, 41.4, 39, 38.4, 33, 33.8, 39.2, 40.4, 37.8, 37.6, 36.4, 31, 30,
30.3333333333333];
// create parallel vector lagged by 1
lagged data = ma_list[2::NRow(ma_list)];
// remove the last observation
data = ma_list[1::NRow(ma_list)-1];
// find the positive differences
positives = Loc( (lagged data - data) > 0 & (data == 0) );
// go get 'em
ma_date_list = :Date[positives];