JSLでSummaryのさまざまな動作は?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />誰かがこれを説明できますか?
| dt = | newtable( "test"、行を追加する(8)、 |
| 新しい列( "A"、文字、公称、選択セット、 |
| | 値の設定({"apple"、"apple"、"apple"、"apple"、"pear"、"pear"、"pear"、"pear"}) |
| ) |
| 新しい列( "B"、文字、公称、 |
| | 設定値({"赤"、"緑"、"赤"、"黄色"、"黄色"、"黄色"、"ピンク"、"ピンク"}) |
| ) |
;
//最初の方法 - これはリンゴの行だけでなく、すべてをまとめたものです
dtsummary1 = dt << summary(group(:B)、(:A == "apple"));
// 2番目の方法 - これは私が欲しかったようなリンゴの列だけをまとめたものです
現在の日付(dt)。
dtsummary2 = summary(group(:B)、ここで(:A == "apple"));
私は2番目の方法を使用することができますが、私はこの動作を理解していません。なぜWhereは同じ動作をしないのですか?りんご列だけのB値を取得するためのもっと賢い方法はありますか?
再:JSLでサマリーのさまざまな動作?面白い。 メッセージとして送信しないことで「プラットフォームのように動作させる」ことができるコマンドが他にあるかどうか、私は疑問に思います。 そして、それがどのような異なる行動を可能にするでしょう。プラットフォーム(FitYbyXが言うように)は、テーブルへのメッセージとして送られてもされなくても同じように振る舞うようですが、おそらく違いもありますか?dt << Bivariate(..)と言うと、プラットフォームが何らかの方法でコマンドとして動作するようにすることで、何らかの違いが生じる可能性がありますか?(私はそれが私が正しいテーブルと話していることを確認するためのそれほど面倒でない方法であるように私はいつもそれをします)。
再:JSLでサマリーのさまざまな動作?summary自体はwhere句を解析しないことに注意してください。
最初のケースでは、要約メッセージをデータテーブルdtに送信しています。
要約はそれが理解していることを解決します。この場合、それはグループ化列です。
2番目のケースはプラットフォームのように動作します。プラットフォームはデータテーブルを解決し、それにメッセージを送信します。
この場合、データテーブルは、A == "apple"のサブセットです。