Statisticsコンポーネントは、指定された値で統計(最低値(Min)、最高値(Max)、平均(Mean/Average)、中央値(Median)、標準偏差(StandardDeviation)、合計(Sum)、最頻値(Mode))をコンポーネント変数に付加します。
指定された値が数値として不適正な値だった場合には、その値は統計から除外されます。除外されずに統計に入った値の数はCountとしてコンポーネント変数に出力されます。
例1
テストの点数がペイロードとして流れてくる場合、Exprに「cv.Payload」で容量に「0」を指定したとします。
10個の値が流れてきて終了した時には、Statisticsはペイロードとして値を配列にして出力にします。
同時に、Statisticsコンポーネント変数内に統計データを出力します。
cv.Payload [100 90 85 80 75 70 65 30 10 0]
cv.Statistics {"Average":60.5, "Count":10, "Max":100, "Mean":60.5, "Median":72.5, "Min":0, "Mode":[], "StandardDeviation":32.973474187595095, "Sum":605}
値を指定する値式は、数値計算式を記述することができます。
上記の例で、「cv.Payload * 100」と指定した場合にはそれぞれの値が100倍された値として統計がとられます。
1つの値から複数の統計を取りたい場合や、JSON Object型でその中から複数の値を抽出し統計を取りたい場合など、一度に複数の値で統計を取りたい場合には値式を配列で値を指定します。
[cv.Payload, cv.Payload*100]
{"val1":123, "val2":456}
というJSON Object型が流れてくるとして
[cv.Payload.val1, cv.Payload.val2]
という指定も可能です。
値式に配列を指定した場合は、コンポーネント変数Statisticsも配列になり、それぞれの統計がとられます。
SensorDataDBコンポーネントでセンサー値で統計をとるには、値式プロパティに「cv.Payload.Data」と指定することで、センサーデータの値をもとに統計データを作成できます。
容量プロパティーの数を超えてデータが送られてくる場合は、容量に到達したら、そこまでのデータはクリアされます。
例えば、容量を 10
に設定して、データが12個来た場合、1回目は1〜10までのデータで統計を取り、そのあとこれら10個のデータは捨てられ、11-12個目のデータで計算されます。
例2
SensorDataDBコンポーネントからデータを抽出して Statisticsコンポーネントで統計データを作成する場合
例ではSensorDataDBコンポーネントで3行のレコードがマッチしたとします。
SensorDataDBコンポーネントは3つの出力Payloadを分けて、順に次のStatisticsコンポーネントに渡します。
1. {Data:123, Layer:"abc"}
2. {Data:456, Layer:"abc"}
3. {Data:789, Layer:"abc"}
容量が0で、値式に cv.Payload.Data
と指定すると [123, 456, 789]
で様々な統計が計算されますが、出力Payloadは [{Data:123, Layer:"abc"}, {Data:456, Layer:"abc"}, {Data:789, Layer:"abc"}]
となります。
容量が2の場合は、1度目は [123, 456]
で統計が計算され、出力Payloadは [{Data:123, Layer:"abc"}, {Data:456, Layer:"abc"}]
となり、2度目は [789]
で統計が計算され、出力Payloadは [{Data:789, Layer:"abc"}]
と2回の出力Payloadを次のコンポーネントに渡します。
出力ペイロード・変数 | 説明 |
---|---|
cv.Payload |
容量=0の場合は、前のコンポーネントの出力ペイロードが配列として出力されます。容量=0以外場合は、前のコンポーネントの出力ペイロードが容量分がまとめられて配列として出力されます。 |
cv.Statistics.Average |
平均 |
cv.Statistics.Count |
除外されずに統計に入った値の数 |
cv.Statistics.Max |
最高値 |
cv.Statistics.Mean |
平均 |
cv.Statistics.Median |
中央値 |
cv.Statistics.Min |
最低値 |
cv.Statistics.Mode |
最頻値 |
cv.Statistics.StandardDeviation |
標準偏差 |
cv.Statistics.Sum |
合計 |
コンポーネントプロパティ
プロパティー名 | 説明 |
---|---|
容量 | 指定された数までためて統計を出力する |
値式 | 統計を取る値の式 |
Need more help with this?
Join our slack community for help