有没有一种有效的方法来进行这种循环聚合?使用大类形式:
1. 从第 20 行开始,提取该行到前 19 行的数据子集。
2. 根据年龄对这个子集进行分类,并汇总身高和体重。并一一串联汇总结果。
谢谢!
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
j = 1;
For( j = 20, j <= N Row( dt ), j++,
dt << Select Where( j - 20 < Row() <= j );
d3 = dt << Subset( Output Table( "tab" ), Selected Rows( 1 ), selected columns( 0 ) );
d1 = d3 << Summary(
Sum( height ),
Sum( weight ),
Subgroup( age ),
Freq( 0 ),
Weight( 0 ),
Link to original data table( 0 ),
statistics column name format( "column" )
);
If( j == 20,
d2 = d1;
d2 << setName( "tmp" );
,
Current Data Table( d2 );
d2 << Concatenate( Data Table( d1 ), Append to first table );
Close( d1, nosave );
);
Close( d3, nosave );
);
自动化和脚本编写视窗回复:有没有一种有效的方法来进行这种循环聚合?按照您现在的方式构建 JSL,您就可以利用一些不错的 JMP 功能。编写 JSL 来创建所需的输出需要大量编码。下面,我对您的脚本做了一些细微的调整,这可能会给您带来更高效的脚本。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
d2 = New Table( "tmp" );
k = 1;
For( k = 20, k <= N Row( dt ), k++,
dt << Select Where( k - 20 < Row() <= k );
d3 = dt << Subset( Output Table( "tab" ), Selected Rows( 1 ), selected columns( 0 ), private );
d1 = d3 << Summary(
Sum( height ),
Sum( weight ),
Subgroup( age ),
Freq( 0 ),
Weight( 0 ),
Link to original data table( 0 ),
statistics column name format( "column" )
);
d2 << Concatenate( Data Table( d1 ), Append to first table );
Close( d1, nosave );
Close( d3, nosave );
);
我将索引变量的名称更改为“j”。这是为了避免可能出现的混乱。JMP 有一个名为 j() 的函数。更好的做法是避免同时使用名为“j”的变量。
回复:有没有一种有效的方法来进行这种循环聚合?谢谢吉姆!
我想用JMP快速计算出每只股票在不同周期的筹码峰值。计算量太大。
回复:有没有一种有效的方法来进行这种循环聚合?ar=[];ar=J(r,c,0);