Ottieni righe che soddisfano una condizione all'interno di una formula di colonnaTutti,
Probabilmente una domanda facile, ma sto cercando aiuto su questo. C'è un modo per ottenere righe che corrispondono a una condizione all'interno di una formula di colonna?
Nell'esempio mostrato di seguito, si dovrebbe essere in grado di ottenere la somma raggruppata di un dato gruppo. Se volessi aggiungere una condizione oltre a questo , diciamo on :height should be > 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 realizzarlo. Tuttavia, vorrei implementarlo tramite una formula di colonna, se possibile.
Oggetto: 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 ottenere ciò che desideri
myheight = :height;
myage = :age;
Sum( :weight[Current Data Table() << get rows where( :age == myage & :height >= myheight )] );
Oggetto: Ottieni righe che soddisfano una condizione all'interno di una formula di colonnaQuindi immagino 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 );
));Oggetto: Ottieni righe che soddisfano una condizione all'interno di una formula di colonnaCiao, inserire un confronto come argomento byVar è una buona idea:
Col Sum( :weight, :age, :height >= 60 )
Sono interessato a mettere un confronto nell'argomento byVar che lo confronta con la riga corrente:
myheight = :height;
Col Sum( :weight, :age, :height >= myheight )
Questo non funziona come previsto: il calcolo mostra una serie di numeri confusi, e poi cambiano tutti in "1" se cambio l'altezza di qualcuno.
C'è un modo per fare questo?
(Solo per un quadro di riferimento migliore, nella mia tabella attuale, sto cercando di contare le righe in cui la data in colA è maggiore del valore della data in colA e dove la data in colB è inferiore al valore della data in colB.)
Oggetto: 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 dei 60 pollici.Semplicemente sono le stesse somme.
Oggetto: Ottieni righe che soddisfano una condizione all'interno di una formula di colonnaTrucco molto interessante per usare le condizioni come Raggruppa per opzioni 
Importante da notare:
Con il codice suggerito, ogni condizione
1) :altezza <=60
2) :altezza > 60)
ottiene il proprio risultato.
Esiste un'altra variante in cui la condizione viene utilizzata per limitare l'aggregazione a uno subset - e il risultato viene scritto su tutte le righe del rispettivo gruppo. Come nell'ultima colonna di questa tabella:

Un'opzione per arrivarci:
Usa Tabelle/Riepilogo con un filtro dati (nuovo in Jmp 17) e unisci i valori alla tabella principale:
Visualizza altro...
Altri approcci (con una varietà di velocità) sono discussi in Come utilizzo la formula Col Maximum con una condizione "where".