他の列の条件に基づく列の「n」行の平均-こんにちは、みんな、
他の列(-"Customer_ID")に基づいて 'n'行の平均(添付の例ではn == 3)を探しています。 各グループ(顧客)の行番号が「n」の整数乗数である場合、つまり[Row == Integer Constantxn]。 私の基本的な式はうまくいきます。 ただし、Row!= Integer Constant xnの場合、他のグループから残りの行を取得します。 それは私に間違った結果を与えています。
私が欲しいもの-
ベストケース-Cutomer_IDに基づいて、データのサブセットの並べ替えで「n」行の平均を計算し、残りの最後の行について、前の平均値からの平均値を入力します。
それ以外の場合は、空の値をそのままにします。
:Customer_ID!= Lag(:Customer_ID、-2)を入れようとしましたが、うまくいきませんでした。 Customer_IDでテーブルを分割してから計算を行うことはできますが、平均で実行するIDは5000を超え、列は約20です。 それは最善の考えではないようです!
何か助けてください?
ありがとう。

スクリプティングRe: 'n'他の列の条件に基づく列の行平均-これが私が思いついた式です

If( Row() == 1 | :Customer_ID != Lag( :Customer_ID ),
count = 0
);
If( count == 3, count = 0 );
count = count + 1;
If(
count == 1,
currentAvg = Col Moving Average( :Value, 1, before = 0, after = 2, :Customer_ID );
display = currentAvg;,
:Customer_ID == Lag( :Customer_ID, -2 ), display = .,
display = currentAvg
);
display;
ヘルププルダウンメニューの下にあるJMPドキュメントライブラリにあるスクリプティングガイドを読むのに時間をかける必要があります。
Re: 'n'他の列の条件に基づく列の行平均-これがすべての場合に機能するかどうかはわかりませんが、提供されているサンプルデータでは機能します。
If(Col Cumulative Sum(1, :Customer_ID) > Col Number(:Value, :Customer_ID) - 1,
Lag(Col Moving Average(:Value, 1, 0, 2, 0, :Customer_ID), 1),
If(Modulo(Col Cumulative Sum(1, :Customer_ID), 3) == 1,
Col Moving Average(:Value, 1, 0, 2, 0, :Customer_ID),
.
)
)
スクリプティングインデックス/スクリプティングガイドから、各関数/式が何をするかを確認してくださいその間数式エディタから選択した部分式の結果をチェックして、非常に面倒なので、それが何をしているのかを理解します。
