使用分位数选择90%的中间范围我有一个标记为Height的数值连续列,其中包含数百个高度值。 我想通过仅使用中间90%的数据范围来排除异常值。 我试图通过选择低于5%的分位数和高于95%的分位数的所有行,然后排除它们来在JSL中编写脚本。 但是我无法使用下面的脚本来使其工作。 我将不胜感激。
RowsBelow5PCTL = dt << get rows where( :HEIGHT < Col Quantile( :HEIGHT, .05 ) );
RowsAbove95PCTL = dt << get rows where( :HEIGHT > Col Quantile( :HEIGHT, .95 ) );
脚本编写回复:使用分位数选择90%的中间范围我相信这会给您您想要的;
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
dt << select where(
:HEIGHT < Col Quantile( :Height, .05 ) |
:HEIGHT > Col Quantile( :Height, .95 )
);
dt << exclude;
或者,如果您需要上下行数矩阵,则可以使用
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
RowsBelow5PCTL = dt << get rows where( :HEIGHT < Col Quantile( :HEIGHT, .05 ) );
dt << select rows(RowsBelow5PCTL);
RowsAbove95PCTL = dt << get rows where( :HEIGHT > Col Quantile( :HEIGHT, .95 ) );
dt << select rows(RowsAbove95PCTL);
dt << exclude;
回复:使用分位数选择90%的中间范围非常感谢你。