안녕
내 테이블에는 시간, 실험실 데이터 및 온도 3개의 열이 있습니다.
랩 데이터의 경우 값이 제공될 때만 유지하고 새 랩 결과가 나올 때까지 모든 연속 행을 null로 설정하고 싶습니다.
이것을 처리하려면 스크립트를 어떻게 작성해야 합니까?
감사

DS의 Formula Solution 외에 아래와 같이 처리할 수 있습니다.
먼저 Big Class를 연령별로 정렬해야 합니다(이것은 실험실 데이터입니다).
열 age를 선택하고 jmp가 age에 대해 반복되는 모든 행을 찾도록 합니다.
이를 위해 연령 값을 삭제합니다.
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 ,
한 가지 가능한 방법은 다음 공식을 사용하여 새 열을 생성하는 것입니다.
If(
:Column 1 == Lag(:Column 1, 1), .,
Row() == 1, :Column 1[1],
:Column 1[Row()]
)
여기서 :Column 1은 관심 있는 데이터 열입니다. 이것은 한 행에서 다음 행으로 변경이 있는 경우를 제외하고 모든 값을 null로 설정하고 해당 값을 사용합니다. 중간 조건은 첫 번째 행을 데이터 열의 행 1 값으로 설정합니다.
다른 방법이 있을 거라고 확신하지만 이 방법이 당신이 하고 싶은 일을 할 수 있다는 것을 압니다. 또한 다른 열이 있으므로 원래 열을 다시 코딩하거나 덮어써도 원본 데이터가 손실되지 않습니다.
도움이 되었기를 바랍니다!,
DS