Prendendo la media della colonna in base a qualche condizione su un'altra colonnaSto cercando un metodo per prendere la media dei dati della colonna in base a qualche condizione su un'altra colonna.
La tabella seguente mostra ciò che voglio ottenere.
Voglio prendere il valore di intensità mediato nel tempo e tabulare una nuova colonna con il valore medio.
La media verrà presa in base a 'Passo' e gruppo come trigger, ovvero tutti i valori di intensità dello stesso gruppo e dello stesso passo
fare la media 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 passaggio di cui è stata calcolata la media, il gruppo a cui appartiene e il valore medio. (solo i dati in rosso)
| Timestamp | Fare un passo | Intensità | Gruppo | (Vuoi una media) Ad 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 | - |
| . | . | . | . | |
| . | . | . | . | |
Consumatori e ricerche di mercatoRi: Prendendo la media della colonna in base a qualche condizione su un'altra colonnaGrazie Jim.
Ri: Prendendo la media della colonna in base a qualche condizione su un'altra colonnaLa tua domanda ha un paio di modi per essere interpretata.
- Non includere nel calcolo della media di gruppo qualsiasi 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 ),
.
)
Ri: Prendendo la media della colonna in base a qualche condizione su un'altra colonnaGrazie, la formula ha funzionato. A proposito, è possibile nidificare questa formula "Se" in un'altra "Se" in modo tale che questa formula venga eseguita solo quando "intensità" è maggiore di 100. Come sarà allora la formula?
Ri: Prendendo la media della colonna in base a qualche condizione 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 ),
.
)