Ottieni righe che soddisfano una condizione all'interno di una formula di colonnaTutto,
Probabilmente una domanda facile, ma in cerca di aiuto su questo. C'è un modo per ottenere righe che corrispondono a una condizione all'interno di una formula di colonna?
Nell'esempio mostrato sotto, si dovrebbe essere in grado di ottenere la somma raggruppata di un dato gruppo. Se volessi aggiungere una condizione in aggiunta a questo, diciamo su :height dovrebbe essere > 60 , come posso ottenerlo.
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << New Column("CondSum",Numeric,Continuous,Formula(Col Sum(:weight,:age)));Al di fuori di una formula di colonna, credo che sia facile e possa raggiungerlo. Tuttavia, vorrei implementarlo attraverso una formula di colonna, se possibile.
Re: Ottieni righe che soddisfano una condizione all'interno di una formula di colonnaLa formula sembra essere valutata solo quando la colonna Età cambia.Tuttavia, la formula seguente sembra darti ciò che desideri
myheight = :height;
myage = :age;
Sum( :weight[Current Data Table() << get rows where( :age == myage & :height >= myheight )] );
Re: Ottieni righe che soddisfano una condizione all'interno di una formula di colonnaQuindi suppongo che abbia qualcosa a che fare con
Il risultato viene memorizzato nella cache internamente in modo che più valutazioni siano efficienti
Non posso dirlo con certezza però.Se usi solo una colonna intermedia sembra funzionare bene.
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: Ottieni righe che soddisfano una condizione all'interno di una formula di colonnaCiao, mettere un confronto come argomento byVar è una bella idea:
Col Sum( :weight, :age, :height >= 60 )
Sono interessato a mettere un confronto nell'argomento byVar che lo sta confrontando con la riga corrente:
myheight = :height;
Col Sum( :weight, :age, :height >= myheight )
Questo non funziona come previsto: il calcolo mostra un insieme di numeri confuso, quindi tutti cambiano in "1" se cambio l'altezza di qualcuno.
C'è un modo per fare questo?
(Solo per un migliore quadro di riferimento, nella mia tabella attuale, sto cercando di contare le righe in cui la data in colA è maggiore del valore di data in colA e in cui la data in colB è inferiore al valore di data in colB.)
Re: Ottieni righe che soddisfano una condizione all'interno di una formula di colonnaCiao Uday,
In realtà puoi semplicemente digitare la condizione come argomento successivo.
Col Sum( :weight, :age, :height > 60 )
All'inizio potrebbe non sembrare corretto in questo esempio di Big Class perché la somma è la stessa per i bambini di 12 anni al di sotto e al di sopra di 60 pollici.Sono semplicemente le stesse somme.