獲取滿足列公式中條件的行全部,
可能是一個簡單的問題 - 但正在尋求一些幫助。 有沒有辦法獲取與列公式中的條件匹配的行?
在下面顯示的示例中,應該能夠實現給定組的分組總和。 如果我想在此之上添加一個條件,讓我們說 on :height should be > 60 ,我該如何實現。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column("CondSum",Numeric,Continuous,Formula(Col Sum(:weight,:age)));在列公式之外,我相信這很容易並且可以實現。 但是,如果可能的話,我想通過列公式來實現這一點。
回复:獲取滿足列公式中條件的行該公式似乎僅在 Age 列更改時才被評估。但是,下面的公式似乎可以滿足您的需求
myheight = :height;
myage = :age;
Sum( :weight[Current Data Table() << get rows where( :age == myage & :height >= myheight )] );
回复:獲取滿足列公式中條件的行所以我猜這與
結果在內部緩存,以便多次評估有效
雖然不能肯定地說。如果你只是使用一個中間列,它似乎工作正常。
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 );
));回复:獲取滿足列公式中條件的行嗨,將比較作為 byVar 參數是個好主意:
Col Sum( :weight, :age, :height >= 60 )
我有興趣在將它與當前行進行比較的 byVar 參數中進行比較:
myheight = :height;
Col Sum( :weight, :age, :height >= myheight )
這不會按預期工作:計算顯示一組令人困惑的數字,然後如果我改變某人的身高,它們都會變為“1”。
有沒有辦法做到這一點?
(只是為了更好的參考框架,在我的實際表中,我試圖計算 colA 中的日期大於 colA 中的日期值以及 colB 中的日期小於 colB 中的日期值的行。)
回复:獲取滿足列公式中條件的行嗨,烏代,
實際上,您可以將條件鍵入為下一個參數。
Col Sum( :weight, :age, :height > 60 )
在這個 Big Class 示例中,乍一看可能不正確,因為 60 英寸以下和以上的 12 歲兒童的總和相同。它們恰好是相同的數額。