rolling_percentile() plugin-program
Returnerar en uppskattning för den angivna percentilen av ValueColumn-populationen i ett rullande (glidande) binsPerWindow-storleksfönster per BinSize.
Plugin-programmet anropas med operatorn evaluate
.
Syntax
T| evaluate
rolling_percentile(
ValueColumn,
Percentil,
IndexColumn,
Diskretisera,
BinsPerWindow [,
dim1,
dim2,
...] )
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
T | string |
✔️ | Tabelluttrycket för indata. |
ValueColumn | string |
✔️ | Namnet på kolumnen som används för att beräkna percentilerna. |
Percentil | int, long eller real | ✔️ | Skalär med percentilen som ska beräknas. |
IndexColumn | string |
✔️ | Namnet på den kolumn som det rullande fönstret ska köras över. |
Diskretisera | int, long, real, datetime eller timespan | ✔️ | Skalär med storleken på de intervall som ska tillämpas över IndexColumn. |
BinsPerWindow | int |
✔️ | Antalet intervall som ingår i varje fönster. |
dim1, dim2, ... | string |
En lista över de dimensionskolumner som ska segmenteras efter. |
Returer
Returnerar en tabell med en rad per varje lagerplats (och en kombination av dimensioner om den anges) som har den rullande percentilen av värden i fönstret som slutar på lagerplatsen (inklusive). Utdatatabellschemat är:
IndexColumn | dim1 | ... | dim_n | rolling_BinsPerWindow_percentile_ValueColumn_Pct |
---|
Exempel
Rullande medianvärde på 3 dagar per dag
Nästa fråga beräknar ett medianvärde på 3 dagar i den dagliga kornigheten. Varje rad i utdata representerar medianvärdet för de senaste 3 intervallen (dagarna), inklusive själva lagerplatsen.
let T =
range idx from 0 to 24 * 10 - 1 step 1
| project Timestamp = datetime(2018-01-01) + 1h * idx, val=idx + 1
| extend EvenOrOdd = iff(val % 2 == 0, "Even", "Odd");
T
| evaluate rolling_percentile(val, 50, Timestamp, 1d, 3)
Resultat
Timestamp | rolling_3_percentile_val_50 |
---|---|
2018-01-01 00:00:00.0000000 | 12 |
2018-01-02 00:00:00.0000000 | 24 |
2018-01-03 00:00:00.0000000 | 36 |
2018-01-04 00:00:00.0000000 | 60 |
2018-01-05 00:00:00.0000000 | 84 |
2018-01-06 00:00:00.0000000 | 108 |
2018-01-07 00:00:00.0000000 | 132 |
2018-01-08 00:00:00.0000000 | 156 |
2018-01-09 00:00:00.0000000 | 180 |
2018-01-10 00:00:00.0000000 | 204 |
Rullande medianvärde på 3 dagar per dag efter dimension
Samma exempel från ovan, men beräknar nu också det rullande fönstret partitionerat för varje värde i dimensionen.
let T =
range idx from 0 to 24 * 10 - 1 step 1
| project Timestamp = datetime(2018-01-01) + 1h * idx, val=idx + 1
| extend EvenOrOdd = iff(val % 2 == 0, "Even", "Odd");
T
| evaluate rolling_percentile(val, 50, Timestamp, 1d, 3, EvenOrOdd)
Resultat
Timestamp | EvenOrOdd | rolling_3_percentile_val_50 |
---|---|---|
2018-01-01 00:00:00.0000000 | Även | 12 |
2018-01-02 00:00:00.0000000 | Även | 24 |
2018-01-03 00:00:00.0000000 | Även | 36 |
2018-01-04 00:00:00.0000000 | Även | 60 |
2018-01-05 00:00:00.0000000 | Även | 84 |
2018-01-06 00:00:00.0000000 | Även | 108 |
2018-01-07 00:00:00.0000000 | Även | 132 |
2018-01-08 00:00:00.0000000 | Även | 156 |
2018-01-09 00:00:00.0000000 | Även | 180 |
2018-01-10 00:00:00.0000000 | Även | 204 |
2018-01-01 00:00:00.0000000 | Udda | 11 |
2018-01-02 00:00:00.0000000 | Udda | 23 |
2018-01-03 00:00:00.0000000 | Udda | 35 |
2018-01-04 00:00:00.0000000 | Udda | 59 |
2018-01-05 00:00:00.0000000 | Udda | 83 |
2018-01-06 00:00:00.0000000 | Udda | 107 |
2018-01-07 00:00:00.0000000 | Udda | 131 |
2018-01-08 00:00:00.0000000 | Udda | 155 |
2018-01-09 00:00:00.0000000 | Udda | 179 |
2018-01-10 00:00:00.0000000 | Udda | 203 |
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för