안녕하세요 여러분.
한 열에 따라 동일하지만 다른 열에 따라 다른 레코드(행)를 분리할 수 있는 스크립트(JMP 13)를 공식화하려고 합니다. 더 자세히 말하면, 같은 샘플에 대해 두 번의 관찰/측정을 했지만 일부 샘플의 경우 결과가 다릅니다. 이러한 경우를 어떻게 분리할 수 있습니까? 저는 이것을 시도했고 (아마도 아주 기본적인 것을 놓친 것 같습니다. 죄송합니다.:(
// Assume the columns are "ColumnA" and "ColumnB"
dt = Current Data Table(); // Reference the current data table
// Loop through each row and compare values in the specified columns
For(i = 1, i <= N Row(dt), i++,
// Compare with every other row to find matches on ColumnA but differences on ColumnB
For(j = i + 1, j <= N Row(dt), j++,
If(dt:ColumnA[i] == dt:ColumnA[j] & dt:ColumnB[i] != dt:ColumnB[j],
dt << Select Row(i);
dt << Select Row(j);
)
)
);
이 문제에 관해 도움을 주시면 감사하겠습니다.
기능
dt << 선택 위치()
지정된 조건과 일치하는 모든 행을 한 번에 선택하여 두 번째 For() 루프를 제거합니다. 또한 훨씬 더 효율적입니다. 아래는 예입니다.
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
For Each Row(
currHt = :height[Row()];
currWt = :weight[Row()];
dt << select where( :height == currHt & :weight != currWt, current selection( "extend" ) );
);