列式内の条件を満たす行を取得します全て、
おそらく簡単な質問ですが、これに関するヘルプを探しています。 列式内の条件に一致する行を取得する方法はありますか?
以下に示す例では、特定のグループのグループ化された合計を達成できるはずです。 this の上に条件を追加したい場合は、 on :height が > 60 である必要があるとしましょう。どうすればそれを達成できますか。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column("CondSum",Numeric,Continuous,Formula(Col Sum(:weight,:age)));column formula の外では、それは簡単で達成できると思います。 ただし、可能であれば、列の数式を使用してこれを実装したいと考えています。
Re: 列式内で条件を満たす行を取得する数式は、Age 列が変更されたときにのみ評価されるように見えます。ただし、以下の式は、必要なものを取得するように見えます
myheight = :height;
myage = :age;
Sum( :weight[Current Data Table() << get rows where( :age == myage & :height >= myheight )] );
Re: 列式内で条件を満たす行を取得するだから何か関係あるんだろうな
複数の評価が効率的になるように、結果は内部的にキャッシュされます
一概には言えませんが。中間列を使用するだけであれば、うまくいくようです。
Names default to here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New COlumn("Conditional", Formula(
myheight = :height;
:height >= myheight; // should always be 1
//:height >= .5*weight // this might be a better example
));
dt << New Column("CondSum",Numeric,Continuous,Formula(
Col Sum( :weight, :age, :Conditional );
));Re: 列式内で条件を満たす行を取得するこんにちは、 byVar 引数として比較を入れるのは良い考えです:
Col Sum( :weight, :age, :height >= 60 )
現在の行と比較する byVar 引数に比較を入れることに興味があります。
myheight = :height;
Col Sum( :weight, :age, :height >= myheight )
これは期待どおりには機能しません。計算結果がわかりにくい数字のセットを示し、誰かの身長を変更すると、数字がすべて「1」に変わります。
これを行う方法はありますか?
(参照のより良いフレームのために、実際のテーブルでは、colA の日付が colA の datevalue よりも大きく、colB の日付が colB の datevalue よりも小さい行をカウントしようとしています。)
Re: 列式内で条件を満たす行を取得するこんにちは。
実際には、次の引数として条件を入力するだけです。
Col Sum( :weight, :age, :height > 60 )
このビッグ クラスの例では、60 インチ未満の 12 歳とそれを超える 12 歳の合計が同じであるため、最初は正しく見えない可能性があります。それらはたまたま同じ合計です。
Re: 列式内の条件を満たす行を取得する条件を次のように使用する非常にクールなトリックグループ化オプション:)
重要な注意事項:
推奨コードでは、各条件
1) :高さ <=60
2) :高さ > 60)
独自の結果が得られます。
条件を使用して集計を制限する別のバリエーションもあります。一サブセット - 結果はそれぞれのグループのすべての行に書き込まれます。 この表の最後の列のように:

そこに到達するための 1 つのオプション:
データ フィルター (Jmp 17 の新機能) でテーブル/概要を使用し、値をメイン テーブルにマージして戻します。
もっと見る...
他のアプローチ (さまざまな速度による) については、以下で説明します。 「where」条件で Col Maximum Formula を使用するにはどうすればよいですか。