大家好,
我想獲取可能包含在列(稱為“Column_A”)中的值(例如:“Value_A”)的行號,而不使用以下程式碼:
rmat = dt << 取得行,其中(包含(列(dt,“Column_A”)[],“Value_A”));
嘗試(row_number_wanted = rmat[1]);
我不想使用這樣的程式碼,因為當需要檢索大數據表中的大量值時,它會花費太多時間。
有辦法嗎?
在 JMP18 中, 在哪裡()被引入作為獲取行 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);
非常感謝 hogi!
我花了一個多小時來獲取行,其中(Contains())。我不得不在某個時候停止它。
使用在哪裡()只需不到 1 分鐘!完美!
再次感謝!