他の列の条件に基づいて列の平均をとる別の列の条件に基づいて列データを平均化する方法を探しています。
下の表は、私が達成したいことを示しています。
時間平均強度値を取得し、平均値を使用して新しい列を表にします。
平均は、トリガーとしての「ステップ」とグループに基づいて取得されます。つまり、同じグループと同じステップからのすべての強度値が取得されます。
平均化され、一度表にされます。 Col平均関数を試しましたが、平均値を複数回挿入し続けます。
ところで、summary(平均値)で新しいテーブルを作成することは可能ですか? この表には、平均化されたステップ、それが属するグループ、および平均値が含まれます(赤のデータのみ)。
| タイムスタンプ | ステップ | 強度 | グループ | (平均したい)例えば |
1 | 1 | 110 | A | 119.7 |
| 2 | 1 | 115 | A | - |
| 3 | 1 | 123.5 | A | - |
| 4 | 1 | 124 | A | - |
| 5 | 1 | 126 | A | - |
| 3 | 2 | 132 | B | 205.73 |
| 4 | 2 | 140 | B | - |
| 5 | 2 | 345.2 | B | - |
| 1 | 2 | 10 | A | 18.33 |
| 2 | 2 | 20 | A | - |
| 3 | 2 | 25 | A | - |
| 。 | 。 | 。 | 。 | |
| 。 | 。 | 。 | 。 | |
分析データ表スクリプティングRe:他の列の条件に基づいて列の平均をとる数式を少し変更すると、必要なものが得られます

If( Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step,
Col Mean( :Intensity, :Group, :Step ),
.
)
Re:他の列の条件に基づいて列の平均をとる数式が機能していただきありがとうございます。 ところで、この「If」式を別の「If」にネストして、「強度」が100より大きい場合にのみこの式が実行されるようにすることは可能ですか。 その場合、式はどのようになりますか?
Re:他の列の条件に基づいて列の平均をとるあなたの質問には、解釈する方法がいくつかあります。
- グループ平均の計算には、強度> 100の値を含めないでください。
If( Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step,
Col Mean( If( :Intensity > 100, :Intensity, . ), :Group, :Step ),
.
)
- グループ内の強度の最初の値が> 100の場合、グループ平均を計算しないでください
If( (Row() == 1 | Lag( :Group ) != :Group | Lag( :Step ) != :Step) & :Intensity > 100,
Col Mean( :Intensity, :Group, :Step ),
.
)
Re:他の列の条件に基づいて列の平均をとるジムに感謝します。