行を除外した後、列の平均値が配信プラットフォームで計算されたものと一致しないのはなぜですか?行を除外する前後の列平均を計算すると、JSL 経由で同じ値が得られます。 配信プラットフォームから入手するとやはり違います。 JSL のどこが間違っているのでしょうか?
Names Default To Here( 1 );
Clear Log();
dt = Open( "$sample_data\Semiconductor Capability.jmp" ); // get data table
//get spec limits into column properties
obj = dt << Manage Spec Limits( Y( dt << Get Column Group( "Processes" ) ), Show Limits All, Save to Column Properties(1) );
obj << close window; // close Manage Spec Limits window
colName = "M1_M1"; // choose column
colMean = Col Mean(dt:colName); show (colMean); // get column mean
colMin = Col Minimum(dt:colName); show (colMin); // get column minimum value
//plot distribution
Distribution(Stack(1), Continuous Distribution(Column(:M1_M1 ), Horizontal Layout(1),Vertical(0), Process Capability(0)));
dt << select where( dt:colName == colMin)<< Hide and Exclude; // hide and exclude the minimim value of the column
colMeanNew = Col Mean(dt:colName); show (colMeanNew); // get column mean again
//plot distribution again
Distribution(Stack(1), Continuous Distribution(Column(:M1_M1 ), Horizontal Layout(1),Vertical(0), Process Capability(0)));



自動化とスクリプト作成ウィンドウズRe: 行を除外した後、私の列の平均値が配信プラットフォームで計算されたものと一致しないのはなぜですか?Col Mean() は、JMP プラットフォームのように除外された行を考慮しません。使用する場合:
colMeanNew = Col Mean( If( Excluded( Row State( Row() ) ), ., dt:colName ) );
それはあなたが望む結果を与えるでしょう。
Re: 行を除外した後、私の列の平均値が配信プラットフォームで計算されたものと一致しないのはなぜですか?列の関数と行の状態これに関してはよく読んでください。 除外された行が独自のグループとして扱われることを気にしない場合は、次のようにすることもできます。
Col Mean(dt:colName, Excluded())
スクリプト内 (数式内ではなく) でこの方法で Col 関数を使用し、複数のグループがある場合 (Excluded には独自のグループがあります)、少し注意する必要があります。 現在の行を非除外に変更するか (Row() = something)、Col 関数を使用して数式を作成することができます。
他のオプションは Summarize() を使用することです
summarize(dt, my_mean = Mean(dt:colName));
Re: 行を除外した後、私の列の平均値が配信プラットフォームで計算されたものと一致しないのはなぜですか?excluded() を使用した列の式は、行の選択が変更されるたびに再評価されることに注意してください。
注意: Jmp が予期せぬ動作をする場所
データ テーブルが小さい場合はこれで問題ありませんが、データ テーブルが大きい場合は顕著な遅延が発生します。
この問題は Jmp 18 で修正される予定です。