series_fill_linear()
Область применения: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Линейно интерполирует отсутствующие значения в ряде.
Принимает выражение, содержащее динамический числовый массив в качестве входных данных, выполняет ли линейную интерполяцию для всех экземпляров missing_value_placeholder и возвращает результирующий массив. Если начало и конец массива содержат missing_value_placeholder, оно заменяется ближайшим значением, кроме missing_value_placeholder. Эту функцию можно отключить. Если весь массив состоит из missing_value_placeholder, массив заполняется constant_value или 0, если он не указан.
Синтаксис
series_fill_linear(
series,
[ missing_value_placeholder [,
fill_edges [,
constant_value ]]])
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
серия | dynamic |
✔️ | Массив числовых значений. |
missing_value_placeholder | скаляр | Задает заполнитель для отсутствующих значений. Значение по умолчанию — double( NULL) . Значение может иметь любой тип, который будет преобразован в фактические типы элементов. double (NULL), long (NULL) и int (NULL) имеют то же значение. |
|
fill_edges | bool |
Указывает, следует ли заменить missing_value_placeholder в начале и конце массива ближайшим значением. По умолчанию: true . Если задано значение false , missing_value_placeholder в начале и конце массива будут сохранены. |
|
constant_value | скаляр | Относится только к массивам, полностью состоящим из значений NULL . Этот параметр задает константное значение, с помощью которого необходимо заполнить ряд. Значение по умолчанию равно 0. При задании этого параметра значение double( NULL сохраняет значения NULL) . |
Возвраты
Линейная интерполяция ряда с использованием указанных параметров. Если ряд содержит только int
или long
элементы, то линейная интерполяция возвращает округленные интерполированные значения, а не точные.
Примечание.
- Если вы создаете ряд с помощью оператора make-series, укажите значение NULL в качестве значения по умолчанию для использования функций интерполяции, как
series_fill_linear()
после этого. См . объяснение. - Если missing_value_placeholder имеет значение
double
NULL или опущено, результат может содержать значения NULL. Чтобы заполнить эти значения NULL , используйте другие функции интерполяции. Только series_outliers() поддерживает значения NULL в входных массивах. series_fill_linear()
сохраняет исходный тип элементов массива.
Пример
let data = datatable(arr: dynamic)
[
dynamic([null, 111.0, null, 36.0, 41.0, null, null, 16.0, 61.0, 33.0, null, null]), // Array of double
dynamic([null, 111, null, 36, 41, null, null, 16, 61, 33, null, null]), // Similar array of int
dynamic([null, null, null, null]) // Array with missing values only
];
data
| project
arr,
without_args = series_fill_linear(arr),
with_edges = series_fill_linear(arr, double(null), true),
wo_edges = series_fill_linear(arr, double(null), false),
with_const = series_fill_linear(arr, double(null), true, 3.14159)
Выходные данные
arr |
without_args |
with_edges |
wo_edges |
with_const |
---|---|---|---|---|
[null,111.0,null,36.0,41.0,null,16.0,61.0,33.0,null,null] | [111.0,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,33.0,33.0] | [111.0,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,33.0,33.0] | [null,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,null,null] | [111.0,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,33.0,33.0] |
[NULL,111,NULL,36,41,NULL,16,61,33,NULL,NULL] | [111,111,73,36,41,32,24,16,61,33,33,33] | [111,111,73,36,41,32,24,16,61,33,33,33] | [null,111,73,36,41,32,24,16,61,33,null,null] | [111,111,74,38, 41,32,24,16,61,33,33,33] |
[NULL,NULL,NULL,NULL]. | [0.0,0.0,0.0,0.0] | [0.0,0.0,0.0,0.0] | [0.0,0.0,0.0,0.0] | [3.14159,3.14159,3.14159,3.14159] |