別のソース列のグループに基づいてシーケンス列を作成するJMPスクリプトサイクルが時間とともに変化する大きなデータセットがあります。 各サイクルの開始時にインデックスが1で、次のサイクルが開始するまでカウントアップを続け、その後カウントが0から始まる列を作成したいと思います。 以下に示すカウント関数とシーケンス関数を使用してみましたが、2番目のサイクルの値が最初のサイクルよりも多い場合に問題が発生します(サイクル観測値が数式で生成する値であり、列109が次の図を参照してください)。スクリプトによって生成されます。)
dt << New Column( "サイクル観測"、数値、式(If(
:Cycle == 1、Sequence(0、1080、1)、
:Cycle == 2、Sequence(0、1439、1)、
:Cycle == 3、Sequence(0、360、1)、
:Cycle == 4、Sequence(0、360、1)、
:Cycle == 5、Sequence(0、360、1)、
:Cycle == 6、Sequence(0、180、1)、
:Cycle == 7、Sequence(0、180、1)、
:Cycle == 8、Sequence(0、180、1)、
:Cycle == 9、Sequence(0、180、1)、
:Cycle == 10、Sequence(0、180、1)、
シーケンス(0、180、1)
)));

スクリプティングRe:別のソース列のグループに基づいてシーケンス列を作成するJMPスクリプトなので@txnelsonコミュニティには同様の問題に対する解決策がたくさんあると述べました。
Lag()を使用できますが、次のような場合にはCol式も役立ちます。
Col Cumulative Sum(1, :Cycle)
1シフトする必要がある場合は、Col Cumulative Sum()の後に数式に-1を追加できます。
この特定のケースでは必ずしも役立つとは限りませんが、 @brady_bradyこれは、ある時点で役立つ可能性が最も高いです。
特別な数式列
Re:別のソース列のグループに基づいてシーケンス列を作成するJMPスクリプトこれは非常に役立つ情報であり、Col Cumulative Sum()は非常にエレガントな方法です。Re:別のソース列からのグループに基づいてシーケンス列を作成するJMPスクリプトこのトピックに関する以前のディスカッションエントリはいくつかありますが、これは簡単な解決策であるため、特定の状況に対して別の例を作成しました。
添付されているのは、必要な値を計算する数式列を含むデータテーブルです。

式は
If( Row() == 1,
value = 1,
If( :Cycle != Lag( :Cycle ),
value = 1,
value
++)
);
value;
私のソリューションは正常に機能しますが、 @jthi以下の解決策がより良い解決策です。