Prendendo la media della colonna in base ad alcune condizioni su un'altra colonnaSto cercando un metodo per prendere la media dei dati della colonna in base ad alcune condizioni su un'altra colonna.
La tabella seguente mostra cosa voglio ottenere.
Voglio prendere il valore dell'intensità media nel tempo e tabulare una nuova colonna con il valore medio.
La media sarà presa in base a 'Step' & Group come trigger, cioè tutti i valori di intensità dello stesso gruppo e dello stesso Step saranno
essere mediato e tabulare una volta. Ho provato la funzione Col mean ma continua a inserire il valore medio più volte.
A proposito, è possibile creare una nuova tabella con riepilogo (valore medio). La tabella includerà il passo che è stato mediato, il gruppo a cui appartiene e il valore medio. (solo i dati in rosso)
| Data e ora | Passo | Intensità | Gruppo | (Vuoi la media) Per es |
1 | 1 | 110 | UN | 119.7 |
| 2 | 1 | 115 | UN | - |
| 3 | 1 | 123.5 | UN | - |
| 4 | 1 | 124 | UN | - |
| 5 | 1 | 126 | UN | - |
| 3 | 2 | 132 | B | 205,73 |
| 4 | 2 | 140 | B | - |
| 5 | 2 | 345.2 | B | - |
| 1 | 2 | 10 | UN | 18.33 |
| 2 | 2 | 20 | UN | - |
| 3 | 2 | 25 | UN | - |
| . | . | . | . | |
| . | . | . | . | |
AnalisiTabella datiScriptingRe: Prendere la media della colonna in base ad alcune condizioni su un'altra colonnaUna leggera modifica alla formula ti darà quello che vuoi

If( Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step,
Col Mean( :Intensity, :Group, :Step ),
.
)
Re: Prendere la media della colonna in base ad alcune condizioni su un'altra colonnaGrazie, la formula ha funzionato. A proposito, è possibile nidificare questa formula "If" in un altro "If" in modo che questa formula venga eseguita solo quando "intensità" è maggiore di 100. Come sarà la formula allora?
Re: Prendere la media della colonna in base ad alcune condizioni su un'altra colonnaLa tua domanda ha un paio di modi per essere interpretata.
- Non includere nel calcolo della Media di Gruppo nessun valore di Intensità > 100
If( Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step,
Col Mean( If( :Intensity > 100, :Intensity, . ), :Group, :Step ),
.
)
- Se il primo valore per Intensità nel gruppo è > 100 non calcolare la media del gruppo
If( (Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step) & :Intensity > 100,
Col Mean( :Intensity, :Group, :Step ),
.
)
Re: Prendere la media della colonna in base ad alcune condizioni su un'altra colonnaGrazie Jim.