Поделиться через


series_fill_linear()

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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]