JSL:2列目の文字列の一致に基づいて、ある範囲の行の値を変更する?私たちのデータ収集ソフトウェアは私たちの実験よりも少し早く開始されるので、私たちは以下の方法でJMPデータのその遅れ時間を排除したいです。
1。ユーザーが各実験の開始日時を入力します(同じデータテーブル内の異なる時間に開始する倍数にすることができます)。この部分は、リストボックスを使って作成しました。
2。日時を解析します。
3。 列Aの文字列識別子の一致に基づいて、各実験に相関する行の範囲を見つけます。
4。 開始日時より前にすべての行を削除します。
5。 実験の経過時間を(10進数で)入力日時から開始するように変更します。
私はエラーメッセージを受け取り続けている#5まですべてに成功しています。理想的には、経過時間列の各セルから各実験の範囲の最初の行の数値を差し引くだけです。ここでループが最も理にかなっているでしょうか。実験の経過時間ごとに新しい列を作成してから再結合する必要がありますか。ヘルプやスクリプトをありがとう。
再:JSL:2列目の一致する文字列に基づいて行の範囲内の値を変更しますか?おかげで、これは非常に役に立ちました。私は自分のスクリプトでこの作品を作ることに成功しましたが、別の障害に到達しました。データポイントは私の開始時間と完全に一致していないので、私は最初の時間ポイントが最大1分ずれてしまうことになります。最初の時点を今のところ0.01の代わりに0にしたいのですが。ただし、調整後の時間列に値が表示されません。以下はタイムスタートが補足される私のコードです。
t1 = dt << Get Rows Where (:BatchID == "ABCD");
t2 = dt << Get Rows Where (:BatchID == "EFGH");
dt << New Column("TimeStart", Number);
:TimeStart[t1] = timestart1;
:TimeStart[t2] = timestart2;
dt << New Column("NewEFT", Number, Formula((:Datetime-:TimeStart)/3600));
dt << Select Where(:NewEFT< 0);
dt << delete rows;
dt << Delete Columns("EFT_hrs");
dt << New Column("Adjusted EFT", Number);
:Adjusted EFT[t1] = :NewEFT - min(:NewEFT[t1]);
:Adjusted EFT[t2] = :NewEFT - min(:NewEFT[t2]);再:JSL:2列目の一致する文字列に基づいて行の範囲内の値を変更しますか?あなたはに興味がある何かを見つけるかもしれませんこのスレッドただし、詳細はデータの特定の形式によって異なります。