Re: Col Median (およびその他): 「場所」オプションを追加 - ステータスが次のように変更されました: 確認済みやあ@ほぎ、 提案ありがとう! ご要望を承りましたので、検討させていただきます。
Re: Col Median (およびその他): 「Where」オプションを追加 - ステータスが「調査中」に変更されましたRe: Col Median (およびその他): 「どこに」オプションを追加 - ステータスが次のように変更されました: We like it! (行列に並んでいる)@ホギこれについては、JMP 全体で Where( ) 句の使用方法を改善する方法に取り組む中で、注意深く検討されています。ご提案ありがとうございます!
Re: Col Median (およびその他): 「どこに」オプションを追加ありがとう :)
Col Median(およびその他): 「Where」オプションを追加☐ クールな新機能
☑ 多くのユーザーに役立つ可能性があります!
☐ 「バグ」を除去する
☐ あれば良い
☐ 誰もそれを必要としない
#myTop10_2022
制限方法についての質問の投稿があります コル ... 集約 機能を特定のサブセットに適用します。
使用される観測値を制限しながら列平均を計算する
JMP10: Col Max() および Col Min() 関数は除外された行のデータを返しました
列関数と行の状態
Col Maximum Formula を "where" 条件で使用するにはどうすればいいですか?
数式内のデータを除外する
応用事例:
- 除外 rows from the aggregation:
Col Max(if(not(excluded()), :weight,.),: sex)
or even shorter (if one doesn't need values in the excluded rows);
Col Max(:weight, :sex, :excluded())
- Benchmark some data with a reference data set (country A in これ post)
:data / Col Maximum(if(:country="A", :data,.))
上記の例からわかるように、簡単な解決策はCol xyz集計内のIfステートメントです。
col Mean( if(:sex=="M", :weight,.), :age);
col Mean( if(not(excluded()), :weight,.), :age)
問題:
このアプローチは、サブセットのif条件に文字列比較が含まれている場合、非常に遅くなります。
Col Maximum Formula を where 付きで使う方法/M78599
すると、時間は行数の 2 乗に比例して増加し、わずか数千エントリの小さなデータ セットの場合でも計算には数秒しかかかりません。
数百万のエントリがあるデータ セットの場合、数か月(!!!) かかりますが、タイムアウトによって停止し、エラー メッセージが表示されます。これは良くありません。
私の願い:
バグを修正する
さらに良い点:
Col xyz集計に追加のwhereオプションを提供する
- これにより、タイミングの問題が自動的に修正されます。まずデータ セットを制限し、次に集計を適用します (--> クールな "col..." スピードアップにバグがあっても、はるかに高速になります)
- サブセットの定義が容易になります。
(*) の代わりに、次のものが必要です:
col Mean(:weight, :age, where(:sex=="M"))
col Mean(:weight, :age, where(not(excluded())))
タイミングの例、 ここからコピー

修正版 - 以前のバージョンではスクリーンショットに [s] ではなく [ms] が表示されていました
より多くの願いが提出されました
自動化とスクリプト基本的なデータ分析とモデリングデータのブレンドとクリーンアップデータの探索と視覚化マスカスタマイゼーション結果の共有と伝達Re: Col Median (およびその他): 「どこに」オプションを追加Jmp の将来のバージョンで where(...) が利用可能になるまでの間は、回避策によって列の集計を桁違いに高速化できます。
データ型を数値に変更するか、数値式列を使用します。
https://community.jmp.com/t5/Discussions/Tips-and-Tricks-best-practice-with-JMP-JSL/td-p/662686
Re: Col Median (およびその他): 「Where」オプションを追加ありがとうございます、 @SamGardner 、 @Sarah-Sylvestre 、JMP18 で利用できるようになりました : )
ステータスを Delivered に変更する前に、このスニペットで Where の使用が意図されているかどうかを確認してください。
元のアプローチと比較すると非常に遅いです:(
dt = Open( "$SAMPLE_DATA/Airline Delays.jmp" );
Print("old aproach");
t0 = hptime();
New Column( "max - 1st of month",
Formula( Col Maximum( if(:Day of Month == 1 , :Arrival Delay,.), :Month) )
);
dt << run formulas();
show((hp time()-t0)/1000000); // 0.5s
Print("new aproach - with Where");
t0 = hptime();
New Column( "max - 1st of month",
Formula( Col Maximum( :Arrival Delay, :Month, Where( :Day of Month == 1 ) ) )
);
dt << run formulas();
show((hp time()-t0)/1000000); // 140s
Re: Col Median (およびその他): 「Where」オプションを追加Print("new aproach - with Where, semi-bugfix");
t0 = hptime();
myWhere = Where( :Day of Month == 1 ) ;
Eval (Eval Expr(New Column( "max - 1st of month",
Formula( Col Maximum( :Arrival Delay, :Month, Expr(myWhere) )
))));
dt << run formulas();
show((hp time()-t0)/1000000); // 40s - better but still way too slow ...Re: Col Median (およびその他): 「Where」オプションを追加ああ、まだ動作しません:(
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "max - 1st of month",
Formula( Col Minimum( :weight, :sex, Where( :age ==17 ) ) )
);