さまざまな条件を使用してリストをサブセット化する5 分間のデータから計算された毎日の移動平均のリストがあります。 このリストは正常に作成できましたが、特定の条件が満たされたときにリスト内で検索し、これらの条件が満たされたときに :Date を含む新しいデータ テーブルを作成する方法がわかりません。 次のコードは、指定された条件に対応する日付だけでなく、ma_list 内の各レコードに対応する日付を取得します。 リストを操作するときに「複雑な」評価基準を作成することは可能ですか? 作成できる場合、その JSL コードはどのようなものになるでしょうか? ご提案をいただければ幸いです。
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]
)
);
Re: さまざまな条件を使用してリストをサブセット化するMark,
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]
)
);
Re: さまざまな条件を使用してリストをサブセット化する「前方評価と後方評価」とはどういう意味ですか? JMP スクリプトでは何でも可能です。
Re: さまざまな条件を使用してリストをサブセット化するマークのご提案に感謝します。
マトリックスの複雑な前方評価と後方評価ができることを期待していましたが、それは完全に不可能であることがわかりました。 あなたの提案は、私が必要としていた評価を得るのに確かに役立ち、また、今後この種のことにどのように取り組むべきかを示してくれました。 ありがとう。
Re: さまざまな条件を使用してリストをサブセット化するこのアプローチが役立つかどうかを確認してください。
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];