大家好,
我想获取可能包含在列(称为“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 分钟!完美!
再次感谢!