循環遍歷列中的行以查找總數嘗試查找列中當前條目的計數。 下面的函數可以工作,但似乎很慢。 有什麼改進腳本運行時間的建議嗎?
JMP14、JMP16
<對於每行(Print(列號( :ColName, :ColName )))>
我的建議:我認為最初通過添加:ColName 中的條目作為“Key”來構建關聯數組,並在重複條目(即重複鍵)時增加值(Value++),或者如果它是新條目,則添加一個單獨的鍵,並將值設置為 1將是一個更好的方式。 然後您可以循環遍歷行來查找它的“值”的數量。
自動化和腳本編寫回复:循環遍歷列的行以查找總數您希望循環遍歷行是否有特定原因? 您很可能使用製表或匯總表來執行類似的任務

摘要+堆棧表

回复:循環遍歷列的行以查找總數我相信您可以通過以下幾種方法來完成您想要的事情。
Names Default To Here( 1 );
dt = Current Data Table();
Summarize( dt, items = by( :colName ) );
countOfUniqueValues = N Items( items );
// or
countOfUniqueValues = N Items( Associative Array( :colName ) << get keys );
回复:循環遍歷列的行以查找總數我正在總結(dt_summary)更大的數據表(dt),它為我提供了列中每個特定條目的行數:ColName。
dt_summary = dt << Summary( Group( :ColName ), Freq( "None" ), Weight( "None" ) );
現在我想迭代原始表 (dt) 行,並從當前行的匯總表中獲取行數,以檢查是否超過 10(出現次數)。
匯總表(按身高分組):

假設我在第一行,高度為 59,出現次數為 2,我想將該信息填充到當前數據表 (dt) 的新列 (height_qty) 中。
回复:循環遍歷列的行以查找總數最簡單的解決方案是使用以下命令將匯總表合併到原始表中:
表格 => 更新
平台
names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
dt_summary = dt << Summary( invisible, Group( :height ), Freq( "None" ), Weight( "None" ) );
dt_summary:N Rows << set name("height_qty");
dt << Update(
With( dt_summary ),
Match Columns( :height = :height )
);
close( dt_summary, nosave );回复:循環遍歷列的行以查找總數非常感謝你的快速幫助,吉姆。 它按預期工作,運行時間從近一分鐘減少到約 2 秒。