使用分位数选择中间 90% 的范围我有一个标记为高度的数字连续列,其中有数百个高度值。 我想通过仅使用中间 90% 范围的数据来排除异常值。 我尝试在 JSL 中编写脚本,选择低于 5% 分位数和高于 95% 分位数的所有行,然后排除它们。 但我无法通过使用下面的脚本使其工作。 我将不胜感激任何指导。
RowsBelow5PCTL = dt << get rows where( :HEIGHT < Col Quantile( :HEIGHT, .05 ) );
RowsAbove95PCTL = dt << get rows where( :HEIGHT > Col Quantile( :HEIGHT, .95 ) );
自动化和脚本编写数据混合和清理回复:使用分位数选择中间 90% 范围非常感谢。回复:使用分位数选择中间 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;