末尾の累積合計式私は非常に簡単な処方の必要性である可能性が高いものを持っています。 温度データセットがあり、過去120日間の末尾の累積合計を計算する必要があります(この合計を7で割って週に変換するため、「度加熱週」と呼ばれます)。 移動平均を取得する方法と累積合計を取得する方法を知っていますが、120日間の累積合計を取得することは可能ですか? この場合、温度が31.3Cを超えると、0.25の「スコア」が与えられます(式については「DH-6時間」の列を参照してください)。 基本的に、120日間のウィンドウでこれらの0.25値の累積合計が必要ですが、実際のウィンドウではなく、日付/月/年などで分割する方法しかわかりません(たとえば「#DHWs」スクリプトを参照)。時間の。 これは実行可能であるに違いないと私は確信しています!
分析データ表スクリプティングRe:末尾の累積合計式私があなたが望むものを正しく解釈しているなら、私は以下の式が実行中の120のトレーリング累積合計を計算すると信じています
If( Row() == 1,
holdMatrix = []
);
If( :Name( " Sea Surface Temperature (deg C)" ) > 31.3,
holdMatrix = holdMatrix || Matrix( 0.25 ),
holdMatrix = holdMatrix || Matrix( . )
);
If( N Cols( holdMatrix ) == 121,
holdMatrix[1] = []
);
Sum( holdMatrix ) / 7;
Re:末尾の累積合計式すごい! それがトリックでした。 1日に8回の測定時間があったという事実を反映するように変更しました(つまり、各行は一意の日ではないため、評価で121 x 8 = 968を掛けました)。 値が下がる前に、以前に計算した年間最大値で最大になるため、データは理にかなっています。 本当にありがとう。 数式エディタに、列の移動平均(私はいつも使用しています)と同様の入力(以前は重みとN)を持つ末尾の累積合計があればいいのにと思います。 多分それをウィッシュリストに追加します。
Re:末尾の累積合計式データセット内の1つの厄介な癖から生じる質問があります。最後の120日間の累積合計を時間単位(前述のように週単位ではない)で評価する必要があります。 ただし、時間間隔には一貫性がありません(添付の表を参照)。 ほとんどの場合、1日あたり8回の測定がありますが、それより少ない場合もあります。 基本的に、温度が31.3を超えるときはいつでも、時間差を列に追加したいと思います。 これは「dif」関数を使用すると十分に簡単です。 しかし、私が苦労しているのは、マトリックス式に「120日」を追加する方法です。 したがって、添付の表では、最後の120日間の「DHH」の累積合計を実行したいと思います。 数式に「行」の数を含めるのではなく、代わりに日付を追跡する必要があります。 それは可能ですか?
Re:末尾の累積合計式使用している除数が正確にはわかりませんが、データのマトリックスの範囲全体で時間数を使用しました。これが私が思いついた式です
If( Row() == 1,
holdMatrix = [];
dateMatrix = [];
);
If( :Name( " Sea Surface Temperature (deg C)" ) > 31.3,
holdMatrix = holdMatrix || 0.25;
dateMatrix = dateMatrix || Informat( :date, "m/d/y" );
);
If( N Cols( dateMatrix ) != 0,
While( dateMatrix[N Cols( dateMatrix )] > dateMatrix[1] + In Days( 120 ),
holdMatrix[1] = [];
dateMatrix[1] = [];
);
x = Sum( holdMatrix ) / ((dateMatrix[N Cols( dateMatrix )] - dateMatrix[1]) / In Hours( 1 ));
,
x = .
);
x;
Re:末尾の累積合計式ジム、私の質問をもう一度見てくれてありがとう。新しい数式から得られた値が低すぎるようですが(数式は理にかなっているように見えますが)。 しかし、おそらく私は自分の必要性を別の方法で述べる必要がありました。その場合、より単純な(または少なくともより簡単な解決策)があるかもしれません:温度が超えていた最後の120日間の合計時間数を知りたいです31.3C。 温度は3時間ごとにしか測定されないため(ほとんどの場合)、これは通常3時間のブロックに相当します。したがって、基本的には3の一連の合計になります(添付の表の「DHH」列を参照)。 したがって、最も暖かい月の値は数百になる可能性があります。 したがって、基本的には、DHH列の最後の120日の合計が必要ですが、1日あたりの測定数が異なるという問題があるため、注意が必要です。