<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは!単純な移動平均をスクリプト化しましたが、データを処理する(勾配の変化を計算する)必要があるため、データテーブルに保存したいと思います。しかし、どうやってそれをスクリプト化するのですか?
勾配の計算方法についてのアイデアも大歓迎です!私が考えているのは、単に微分を遅れとして取ることです(ds / dt =(時間 - 遅れ(時間、x))/(位置 - 遅れ(位置、x))。

ジム、ありがとう、トリックしました
一方、私は手動で計算しましたが、今度はJimのソリューションを使用します。そしてJoseGL、私もあなたが使うことができるはずである次の公式を使いました。Y 行インデックスを示すには、Lag(:variable、index)を使用できます。これにより、カウンタnを任意の値に変更できるため、はるかに柔軟性があります。

私のデータでは、500Kを超える行を持つファイルで200行ごとに繰り返す小さな行セクションの傾きを計算する必要がある場合が多く、これが通常の方法です。
1)シーケンスを使用して人工のマーカー* [例えば0から200]を "row series"に追加します。
*私はこの可変測定時間と呼びます
2)勾配式のXとYの平均の長さを設定します
3)IFステートメントを使用して、必要な範囲または行の傾きを推定します。
4)[私のデータ]すべての測定値を勾配で補正します
これは私が使用しているスクリプトです[ハードコーディングされていますが、仕事は私のために終わらせます^ _ ^]
Y_Mean = Mean( :MA_T1[Row()], :MA_T1[Row() + 1], :MA_T1[Row() + 2], :MA_T1[Row() + 3], :MA_T1[Row() + 4], :MA_T1[Row() + 5], :MA_T1[Row() + 6], :MA_T1[Row() + 7], :MA_T1[Row() + 8], :MA_T1[Row() + 9], :MA_T1[Row() + 10], :MA_T1[Row() + 11], :MA_T1[Row() + 12], :MA_T1[Row() + 13], :MA_T1[Row() + 14] ); X_Mean = Mean( :Measurement time[Row()], :Measurement time[Row() + 1], :Measurement time[Row() + 2], :Measurement time[Row() + 3], :Measurement time[Row() + 4], :Measurement time[Row() + 5], :Measurement time[Row() + 6], :Measurement time[Row() + 7], :Measurement time[Row() + 8], :Measurement time[Row() + 9], :Measurement time[Row() + 10], :Measurement time[Row() + 11], :Measurement time[Row() + 12], :Measurement time[Row() + 13], :Measurement time[Row() + 14] ); If( :Measurement time == 1, Slope = ((:Measurement time[Row()] - X_Mean) * (:MA_T1[Row()] - Y_Mean) + (:Measurement time[Row() + 1] - X_Mean) * (:MA_T1[Row() + 1] - Y_Mean) + (:Measurement time[Row() + 2] - X_Mean) * (:MA_T1[Row() + 2] - Y_Mean) + (:Measurement time[Row() + 3] - X_Mean) * (:MA_T1[Row() + 3] - Y_Mean) + (:Measurement time[Row() + 4] - X_Mean) * (:MA_T1[Row() + 4] - Y_Mean) + (:Measurement time[Row() + 5] - X_Mean) * (:MA_T1[Row() + 5] - Y_Mean) + (:Measurement time[Row() + 6] - X_Mean) * (:MA_T1[Row() + 6] - Y_Mean) + ( :Measurement time[Row() + 7] - X_Mean) * (:MA_T1[Row() + 7] - Y_Mean) + (:Measurement time[Row() + 8] - X_Mean) * (:MA_T1[Row() + 8 ] - Y_Mean) + (:Measurement time[Row() + 9] - X_Mean) * (:MA_T1[Row() + 9] - Y_Mean) + (:Measurement time[Row() + 10] - X_Mean) * ( :MA_T1[Row() + 10] - Y_Mean) + (:Measurement time[Row() + 11] - X_Mean) * (:MA_T1[Row() + 11] - Y_Mean) + (:Measurement time[Row() + 12] - X_Mean) * (:MA_T1[Row() + 12] - Y_Mean) + (:Measurement time[Row() + 13] - X_Mean) * (:MA_T1[Row() + 13] - Y_Mean) + ( :Measurement time[Row() + 14] - X_Mean) * (:MA_T1[Row() + 14] - Y_Mean)) / ((:Measurement time[Row()] - X_Mean) ^ 2 + ( :Measurement time[Row() + 1] - X_Mean) ^ 2 + (:Measurement time[Row() + 2] - X_Mean) ^ 2 + (:Measurement time[Row() + 3] - X_Mean) ^ 2 + (:Measurement time[Row() + 4] - X_Mean ^ 2) + (:Measurement time[Row() + 5] - X_Mean) ^ 2 + (:Measurement time[Row() + 6] -X_Mean) ^ 2 + (:Measurement time[Row() + 7] - X_Mean) ^ 2 + (:Measurement time[Row() + 8] - X_Mean) ^ 2 + (:Measurement time[Row() + 9] - X_Mean) ^ 2 + (:Measurement time[Row() + 10] - X_Mean) ^ 2 + (:Measurement time[Row() + 11] - X_Mean) ^ 2 + ( :Measurement time[Row() + 12] - X_Mean) ^ 2 + (:Measurement time[Row() + 13] - X_Mean) ^ 2 + (:Measurement time[Row() + 14] -X_Mean) ^ 2) ); If( :Measurement time < 1, :MA_T1, :MA_T1 - Slope * :Measurement time );)
お役に立てれば、
そして、誰かがこれを行う方法を知っているならば私に知らせてください:

[つまり、実際の変数名を使わずに、[ユーザー]指定の変数名に添字を付ける]
-JoseGL
これは、Help ==> Scripting Indexから取り出した簡単な例です。時系列オブジェクトについて、単純な移動平均をスクリプト内のデータテーブルに保存する方法を示しています。
ここにデフォルトの名前 ( 1 ) ;
dt = 開いた ( "$ SAMPLE_DATA /株価..jmp" ) ;
obj = 時系列 (
Y ( : 閉じる ) 、
単純な
移動平均 ( モデルを追加 ( 5 ) )
) ;
結果 = obj <<
単純移動平均 ( データテーブルに保存 ) ;
スロープの計算について意見を述べることはしません。