循环遍历列中的行以查找总数尝试查找列中当前条目的计数。 下面的函数可以工作,但似乎很慢。 有什么改进脚本运行时间的建议吗?
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 秒。