こんにちは - 条件に基づいて最新の行を検索し、別の列の値を取得したり、2 つの行パラメーター (DateTime) 間の計算を実行したりするための数式を配置するのに助けが必要です。
以下のデータ テーブル (これも添付) には、Asset、DateTime、Discrete、および Action 列があります。
データは最初に Asset に基づいて並べ替えられ、次に DateTime (昇順) に並べ替えられます。
テーブル変数 days_threshold = 4 もあります。
Action(Desired) は、現在の式が適用される Action の望ましい形式です。

変更する必要があります。
を取得するすべての行離散= 1 (これは通常、ここではスキップされた数式ルールによって決定され、代わりにサンプル値が提供されます)、アクション独自の前の行を探し始める必要があります (日付時刻下降形)。 その検索の 2 つの条件は次のとおりです。
1- 同じものを探す資産そのために離散=1 (つまり、XY01 または XY02 のいずれか)
2-最新の値まで見てくださいアクション = 1見つかった 。
前回の Action が 1 であった時間から現在の行の DateTime までの日数を計算します。
差 (日数) >= days_threshold = 4 ---> の場合、現在の行のアクション = 1
それ以外の場合 (日数) < days_threshold ---> then 現在の行のアクション = 0
Action が "1" だった最新の時間を見つけることにのみ関心があります ... その単一の値が見つかったら (存在する場合)、その時点で検索を停止できます。 検索の制限は、そのアセットが最初に出現するまでです (つまり、最も古いレコード)。 以前に Action が「1」に設定されていない場合、現在の行の Action を「1」に設定できます。
たとえば、行 2 は XY01 が初めて Action =1 を取得したときです (Discrete に基づいており、それ自体がいくつかのルールに関連付けられており、この例では値のみを示しています)。
次の行 3 では、Discrete が再び 1 に設定されますが、前の行と現在の行の日数差が 0 (< days_threshold) であるため、今回は Action を 0 にする必要があります。
同様に、行 5 では、Action が 1 だった前回から 3 日しか経過していないため、Action は 0 のままです。
最後に、行 6 で Action が「1」に設定されます。
このアイデアに従って 2 つのアセットを提供しました。必要な値を Action(Desired) に設定します。
これは、スクリプトではなく式であることが望ましいです。
JMPチームに感謝します。
アルトゥグ バイラム
