Funzione Col (Somma) selezionando righe specifiche<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Vorrei creare una colonna che calcola la media o la somma di un'altra colonna, ma vorrei specificare la funzione tramite:
Diciamo che se selezioniamo l'anno il calcolo deve avvenire per "Anno" oppure,
Diciamo colonna (somma) di NetRevenueWithoutVat per anno o "NetRevenueWithoutVat" per "Mese (data soggiorno)" o
Funzioni Col (somma) di numeri di riga specifici...
Qualcuno potrebbe condividere le sue conoscenze come farlo nello scripting o inserendo la funzione Col(Sum) come formula in una colonna?
La logica dietro?
Molte grazie in adanza

Re: Funzione Col (Somma) selezionando righe specificheDovresti creare una colonna separata che contenga una colonna di raggruppamento per ogni intervallo di date che desideri utilizzare oppure potresti voler utilizzare qualcosa del tipo:
Col Sum(
If(
:Event Date >= Informat( "02/01/2001", "mm/dd/yyyy" ) & :Event Date <=
Informat( "02/28/2001", "mm/dd/yyyy" ),
:Total Fatal Injuries,
0
)
)
Re: Funzione Col (Somma) selezionando righe specificheNon importa, capito!
colonna somma(
:Importo di liquidazione,
:Date >= 01Aug2018 & :Date <= 07Aug2018,
:Numero di carta
)Re: Funzione Col (Somma) selezionando righe specificheQuindi perdonami, ma sono un nuovo utente di JMP. Sto usando solo l'editor di formule, non JSL. Non sono sicuro se quello che mi stai dando è per JSL o per l'editor di forumula. Non sono in grado di inserire le condizioni nella formula in questo modo?
Col Somm (: Importo di liquidazione , :Data >= 8 / 1 / 2018 & :Data <= 8 / 7 / 2018 ,:Numero di carta )
Tranne che il problema che sto incontrando è che JMP lo sta correggendo automaticamente per essere una divisione, non una formula di data.
Re: Funzione Col (Somma) selezionando righe specifiche@Mitch103 ,
Prova qualcosa di simile come suggerito da @SM :
dt = Current Data Table();
dt << Select Where(:Date > StartDate & :Date <ENDDATE></ENDDATE>
Re: Funzione Col (Somma) selezionando righe specificheSei in grado di utilizzare questa formula e definire la logica per una particolare colonna? Ad esempio, sto cercando di sommare gli importi in dollari per ogni record tra due date. Quindi la formula sarebbe simile a questa:
Col Somm ( : Importo in dollari, : Data)
Ma non sono sicuro di come definire l'intervallo di date.
Re: Funzione Col (Somma) selezionando righe specificheQuando uso
Col Sum( :ColumnName, Selected() )
ottengo il seguente errore:
Row number not set or in range in access or evaluation of 'Selected' , Selected/*###*/()
Qualcuno potrebbe dirmi cosa potrebbe essere successo?
Re: Funzione Col (Somma) selezionando righe specificheIl tuo codice di esempio:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << select Where(:age ==12);
n = Col Sum(:age,Selected());
La funzione Col Sum() opera in modo diverso nel codice aperto rispetto a una formula. Durante l'elaborazione dei dati, in codice aperto, se è presente il secondo elemento, JMP non può eseguire l'istruzione poiché il valore risultante restituirà più di un valore. Cioè, il valore restituito nel tuo esempio richiederebbe che la variabile "n" abbia 2 valori. Col Sum() per le righe selezionate e Col Sum() per le righe non selezionate. Suppongo che JMP possa restituire un elenco di valori, ma as @SM indicato che la funzione Summarize() viene utilizzata per questo. Pertanto, il motivo per cui il secondo elemento nella funzione Col Sum() non è valido nel codice aperto.
Re: Funzione Col (Somma) selezionando righe specifiche@txnelson :
Grazie . Sebbene abbia familiarità con questo approccio, ciò che mi ha sorpreso è stato il modo @SM stava risolvendo lo stesso problema.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Conditional sum", Formula(Col Sum(:age, Selected()))); // This Works
dt << select Where(:age == 12);
n = Col Sum(:age,Selected()); // This yields an error Anche se capisco che la riga 4 può essere facilmente sostituita con la tua soluzione, ad esempio e questa è la mia soluzione goto,
n = Sum(:age[dt << Get Selected Rows]);
Non capisco perché questa riga di codice si traduca in un errore nel mio caso.
n = Col Sum(:age,Selected());
La documentazione non mostra che questa funzione esiste (almeno in JPM 12), quindi ero davvero entusiasta di questo nuovo trucco ma sembrava funzionare nel caso @SM Risolto il problema in precedenza. Qualcuno di voi può spiegare perché lo stesso identico codice funziona in una formula di colonna ma genera un errore all'esterno?
Uday
Re: Funzione Col (Somma) selezionando righe specificheLe funzioni Col Stat() sono principalmente utili nelle formule di colonna e con argomenti di raggruppamento facoltativi non funzionano affatto come funzioni autonome (quindi utilizzare Summarize()).
Il mio vecchio post aveva lo scopo di mostrare come aggiornare dinamicamente una colonna semplicemente selezionando le righe a mano (o tramite script). Più un bel trucco che qualcosa di molto utile...
Esempio:
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << New Column("Conditional sum", Formula(Col Sum(:age, Selected())));
dt << select Where(:age == 12);
// Or select rows by hand and see how numbers change dynamically
Re: Funzione Col (Somma) selezionando righe specificheQuello che vuoi fare è utilizzare la possibilità di fare riferimento ai valori in una tabella di dati come vettore di dati e passargli la matrice delle righe selezionate
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << select Where(:age == 12);
n = Sum(:age[dt << Get Selected rows]);Re: Funzione Col (Somma) selezionando righe specifiche@ian_jmp / @SM / @txnelson - Qualche idea ?
Re: Funzione Col (Somma) selezionando righe specifiche
Questa soluzione funziona solo in versioni specifiche di JMP?
Perché sto usando JMP 12 e continuo a imbattermi in questo errore
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << select Where(:age ==12);
n = Col Sum(:age,Selected());
Ecco il mio registro
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << select Where( :age == 12 );
n = Col Sum( :age, Selected/*####*/() );
Numero di riga non impostato o compreso nell'intervallo nell'accesso o nella valutazione di 'Selected' , Selected/*###*/()
Re: Funzione Col (Somma) selezionando righe specificheSì, è supportata più di una variabile di raggruppamento.
Re: Funzione Col (Somma) selezionando righe specificheGrazie!
Questo è quello che stavo cercando.
Significa che potrei andare oltre e diciamo Col Somm ( : Entrate netteSenza IVA , : Anno, :Agenzia ) ?
Re: Funzione Col (Somma) selezionando righe specificheUtilizzare ColSum() nelle formule di colonna. La formula Col Somm ( : Entrate netteSenza IVA , : Anno ) restituirà la somma (non la somma cumulativa) raggruppata per Anno .
Prova questa formula per un ColSum() che cambia dinamicamente con la selezione delle righe:
Col Somm ( : Entrate netteSenza IVA , Selezionato () )
Re: Funzione Col (Somma) selezionando righe specificheLa risposta può dipendere da ciò che accade dopo. Puoi sicuramente fare:
NamesDefaultToHere(1);
// (1) Get some data
dt1 = Open("$SAMPLE_DATA/Big Class.jmp");
// (2) Get summary info into a list and a vector
Summarize(groups = By(:sex), groupMeans = Mean(:height));
// (3) Make a table using the summary info
dt2 = NewTable("Height by Gender",
NewColumn("Gender", Character, Nominal, Values(groups)),
NewColumn("Mean Height", Numeric, Continuos, Values(groupMeans))
);
(vedere la JSL Scripting Guide per ulteriori opzioni con Riepiloga).
Se hai bisogno del passaggio 3, potresti utilizzare meglio "Tabelle> Riepilogo" o "Analizza> Tabula".
Puoi anche aggregare su qualsiasi set di righe, purché tu possa esprimere quale sia quella selezione.