안녕하세요 여러분,
다음 코드를 사용하지 않고 열("Column_A"라고 함)에 포함될 수 있는 값(예: "Value_A")의 행 번호를 가져오고 싶습니다.
rmat = dt << Contains( Column( dt, "Column_A" )[], "Value_A" )가 있는 행을 가져옵니다.
(행_번호_원하는 = rmat[1])을 시도하세요.
많은 양의 데이터 테이블에서 값을 검색해야 할 때 너무 많은 시간이 걸리기 때문에 이런 코드를 사용하고 싶지 않습니다.
방법이 있나요?
JMP18에서는 where()를 사용 하여 행을 가져오는 더 빠른 대안으로 Where()가 도입되었습니다.
반면에, Get rows where(Contains())는 수행해야 하는 작업에 비해 매우 빠릅니다.
"너무 많은 시간"이 무슨 뜻인지 예를 들어주시겠어요? 데이터 테이블에는 몇 개의 행이 있나요?
dt = Open( "$SAMPLE_DATA/Aircraft Incidents.jmp" );
dt= dt << concatenate({dt,dt,dt,dt,dt,dt,dt,dt});
wait(0);
dt= dt << concatenate({dt,dt,dt,dt,dt,dt,dt,dt});<BR />
t0=hptime();
current data table() << get rows where(contains(:location, "SD"));
show(nrows(),(hptime()-t0)/1000000);
t0=hptime();
where(dt,contains(:location, "SD"));
show(nrows(),(hptime()-t0)/1000000);
close(dt, noSave);
호기님, 정말 고맙습니다!
Get rows where(Contains())를 사용하는 데 1시간 이상 걸렸습니다. 어느 시점에서 중단해야 했습니다.
Where()를 사용하면 1분도 안 걸려요! 완벽해요!
다시 한번 감사드립니다!