前の行の値に基づいて平均を計算しようとしています(履歴値を取得する必要があります)こんにちは-jslに前の行の値(前の4行の値)を取得して、それらの行の平均を計算する式で使用する方法を理解しようとしています。 たとえば、列Aの値が3、3、2、8、0、2、2であるとします。列Bの数式で、前の4行の値を使用して列Aの平均を計算したいと思います。平均関数は単純ですが、過去のデータのサブセットのみを読み取って使用する方法がわかりませんでした。
元:
colA colB
3
3
2
8
0 4
2 4
2 3
これについて助けてくれてありがとう!
スクリプティングRe:前の行の値に基づいて平均を計算しようとしています(履歴値を取得する必要があります)やあ、
ラグ()関数を調べましたか? 以下に示すように、行のオフセットを指定できます。
If( Row() < 4,
.,
Mean( Lag( :Column 1, 3 ), Lag( :Column 1, 2 ), Lag( :Column 1, 1 ), :Column 1 )
)
これを行うためのよりエレガントな方法があるかもしれませんが、これは機能します。
一番、
NS
Re: 前の行の値に基づいて平均を計算しようとしています (履歴値を取得する必要があります)シンプルでいいですね。新しい列関数を使用すると、機能していないようです。つまり、新しい列 (平均式を保持する列) には何も入力されません。これが私のスクリプトです:
新しい列("毎時外乱流",
数値、
継続的な、
Mean( ラグ( :pearson_turb_fnu, 4 ), ラグ( :pearson_turb_fnu, 3 ),
弱い(:pearson_turb_fnu, 2 )、弱い(:pearson_turb_fnu, 1) )
);
正しく適用していますか?
Re: 前の行の値に基づいて平均を計算しようとしています (履歴値を取得する必要があります)Col Moving Average() 関数を検討することをお勧めします。
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
new column("mov avg",formula(
Col Moving Average( :height, 1, 4, 0)));Re: 前の行の値に基づいて平均を計算しようとしています (履歴値を取得する必要があります)ジムさん、本当にありがとう。調べてみます。平均(ラグ)の式もうまくいきました。: )
Re: 前の行の値に基づいて平均を計算しようとしています(履歴値を取得する必要があります)正しく動作させるには、方程式に「formula」という単語を追加するだけでよかったようです。TSさん、本当にありがとうございます!