내 클래스의 외계인을 나열하여 아웃라이어 스크리닝을 수행하고 싶습니다.
첫번째 시도: 로컬 데이터 필터
나는 Big Class의 모든 외계인들에게 꽤 충격을 받았습니다!
... 하지만 데이터 필터가 무시되었다는 것을 알았습니다(왜냐하면 첫날에는 수업에 외계인이 없었기 때문입니다).
이것은 관련이있는 것 같습니다 데이터 필터: 제한을 지정하는 방법 :
값이 데이터 필터에서만 사용되고 데이터 테이블에서는 사용되지 않는 경우 데이터 필터에서 제거됩니다.
이 동작은 Jmp의 다른 동작을 방해합니다. 마지막 필터 값이 선택 취소되면 모두 행이 선택됩니다(없음 대신).
따라서 데이터 필터의 현재 동작에서는 이 접근 방식이 작동하지 않습니다.
다음으로, 나는 어디() Tabulate Report를 제한하는 조항.
불행하게도 어느 날 클래스에 외계인이 없으면 Where 절은 데이터 세트를 0 행으로 제한하는 대신 오류 메시지를 생성합니다.
This Where-clause for data table 'Big Class' resulted in no rows: :alien == 1
또한 보고서의 행 선택이 정적인 것 같습니다.
XX가 비외계인으로 변경된 후에도 그는 여전히 보고서에 나열됩니다.

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column( "alien", nominal, set each value( 0 ) );
myDashboard = Function( {myTitle,withWhereClause},
New Window( myTitle,
Eval(
Substitute(
Expr(
Tabulate(
Show Control Panel( 0 ),
Add Table(
Row Table( Grouping Columns( :sex, :age, :name ) )
),
,
__selectAliens__
)
),
Expr( __selectAliens__ ),
If( withWhereClause,
Expr( Where( :alien == 1 ) ),
Expr(Local Data Filter( Close Outline( 1 ), Add Filter( columns( :alien ) ), Where( :alien == 1 )) )
)
)
)
)
);
myDashboard("select aliens via Data Filter", 0 ); // 1st approach: Data Filter --> so many alienas ?!?! no, Data filter was ignored
myDashboard("select aliens via Where()", 1 ); // Where CLause + no matching row --> error message instead of a report
dt << add rows( {name = "XX", alien = 1, sex = "M", age = 200} );
wait(2);
myDashboard("select aliens via Where()", 1 ); // Where CLause + matching row --> dashboard is created, but ...
// XX gets human -> Dashboard stays the same :(
dt[41, {"alien"}] = 0;