'n' media riga di una colonna basata su una condizione di un'altra colonna -Ciao a tutti,
Sto cercando la media di "n" righe (nell'esempio allegato, n == 3) in base ad altre colonne (-- "Customer_ID"). Se il mio numero di riga per ogni gruppo (cliente) è un moltiplicatore intero di 'n', ad esempio [Row == Integer Constant xn]. La mia formula di base funziona bene. Ma se Row != Integer Constant xn, prende le righe rimanenti da un altro gruppo. Che mi sta dando risultati sbagliati.
Quello che voglio -
Caso migliore: calcola la media di 'n' righe su un tipo di sottoinsieme dei dati in base a Cutomer_ID e per le ultime righe rimanenti inserisci il valore medio dal valore medio precedente.
Altrimenti, lascia i valori vuoti così com'è.
Ho provato a mettere :Customer_ID != Lag(:Customer_ID, -2) ma non ha funzionato per me. Posso dividere la tabella su Customer_ID e quindi eseguire il calcolo, ma ci sono più di 5000 ID e circa 20 colonne per la media da fare. Non mi sembra l'idea migliore!
Qualche aiuto per favore?
Grazie.

ScriptingRe: "n" media di una colonna basata su una condizione di un'altra colonna -Ecco la formula che mi è venuta in mente

If( Row() == 1 | :Customer_ID != Lag( :Customer_ID ),
count = 0
);
If( count == 3, count = 0 );
count = count + 1;
If(
count == 1,
currentAvg = Col Moving Average( :Value, 1, before = 0, after = 2, :Customer_ID );
display = currentAvg;,
:Customer_ID == Lag( :Customer_ID, -2 ), display = .,
display = currentAvg
);
display;
È necessario dedicare del tempo alla lettura della Guida allo scripting che si trova nella libreria di documentazione di JMP disponibile nel menu a discesa della Guida!
Re: "n" media di una colonna basata su una condizione di un'altra colonna -Non ho idea se funzionerà in tutti i casi, ma funziona con i dati di esempio forniti:
If(Col Cumulative Sum(1, :Customer_ID) > Col Number(:Value, :Customer_ID) - 1,
Lag(Col Moving Average(:Value, 1, 0, 2, 0, :Customer_ID), 1),
If(Modulo(Col Cumulative Sum(1, :Customer_ID), 3) == 1,
Col Moving Average(:Value, 1, 0, 2, 0, :Customer_ID),
.
)
)
Controlla cosa fa ciascuna delle funzioni/formule dall'indice degli script/guida agli script mentre controllando il risultato della sottoespressione selezionata dall'editor di formule per capire cosa sta facendo in quanto è piuttosto disordinato:
