やあ
私のテーブルには、時間、ラボデータ、1つの温度の3つの列があります。
ラボデータについては、利用可能になったときの値のみを保持し、新しいラボ結果が得られるまで、連続するすべての行をnullに設定したいと思います。
これを処理するスクリプトをどのように書く必要がありますか?
ありがとう

DSの公式ソリューションに加えて、以下のように扱うことができます。
まず、ビッグクラスを年齢で並べ替える必要があります(これはラボデータです)。
列の年齢を選択し、jmpに年齢の繰り返し行をすべて検索させます。
これらについては、年齢の値を削除します。
BRゲオルク
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
dt << sort( by( age, name ), Replace Table );
dt << select columns(age);
dt << select duplicate rows();
dt:age[dt << get selected rows()]=.;
いくつかの追加の数式オプション(必要に応じて、<<各値を数式に設定するだけで置き換えます)
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(9),
New Column("Column 1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 2, 2, 2, 3, 3, 3])),
New Column("Column 2", Numeric, "Continuous", Format("Best", 12), Set Values([1.2, 1.2, 1.3, 2.3, 2.4, 2.1, 3.5, 3.6, 3.1]))
);
dt << New Column("Result", Numeric, Continuous, << Set Each Value(
IfMZ(:Dif(:Column 1) == 0,
.
,
:Column 1
)
));
dt << New Column("Result2", Numeric, Continuous, << Set Each Value(
If(Row() == Col Min(Row(), :Column 1),
:Column 1
,
.
);
));やあ@ LogitTurtle576 、
考えられる1つの方法は、次の式を使用して新しい列を生成することです。
If(
:Column 1 == Lag(:Column 1, 1), .,
Row() == 1, :Column 1[1],
:Column 1[Row()]
)
ここで、:Column 1は、対象のデータ列です。 これにより、ある行から次の行に変更がある場合を除いて、すべての値がnullに設定され、その値が使用されます。 真ん中の条件は、最初の行をデータ列の行1の値に設定します。
他にも方法があると思いますが、これであなたが興味のあることを実行できることはわかっています。 さらに、別の列があるため、元の列を再コーディングまたは上書きしても、元のデータが失われることはありません。
お役に立てれば!、
DS