Ler em inglês

Partilhar via


series_fill_linear()

Aplica-se a: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Linearmente interpola valores ausentes em uma série.

Usa uma expressão que contém matriz numérica dinâmica como entrada, faz interpolação linear para todas as instâncias de missing_value_placeholder e retorna a matriz resultante. Se o início e o fim da matriz contiverem missing_value_placeholder, ele será substituído pelo valor mais próximo diferente de missing_value_placeholder. Este recurso pode ser desativado. Se toda a matriz consistir na missing_value_placeholder, a matriz será preenchida com constant_value ou 0 se não for especificado.

Sintaxe

series_fill_linear( série, [ missing_value_placeholder [,fill_edges [,constant_value ]]])

Saiba mais sobre convenções de sintaxe.

Parâmetros

Designação Tipo Necessário Descrição
série dynamic ✔️ Uma matriz de valores numéricos.
missing_value_placeholder escalar Especifica um espaço reservado para valores ausentes. O valor padrão é double(null). O valor pode ser de qualquer tipo que possa ser convertido em tipos de elementos reais. double(null), long(null) e int(null) têm o mesmo significado.
fill_edges bool Indica se missing_value_placeholder no início e no final da matriz devem ser substituídos pelo valor mais próximo. true por padrão. Se definido como false, missing_value_placeholder no início e no final da matriz será preservado.
constant_value escalar Relevante apenas para matrizes que consistem inteiramente em valores de nulos. Este parâmetro especifica um valor constante com o qual preencher a série. O valor padrão é 0. Definir esse parâmetro como double(null) preserva os valores de null.

Devoluções

Uma série de interpolação linear de série usando os parâmetros especificados. Se de série contiver apenas int ou long elementos, então a interpolação linear retorna valores interpolados arredondados em vez de valores exatos.

Nota

  • Se você criar série usando o operador make-series, especifique nulo como o valor padrão para usar funções de interpolação como series_fill_linear() depois. Ver explicação.
  • Se missing_value_placeholder for double(null) ou omitido, então um resultado pode conter valores de nulos. Para preencher esses valores de nulos, use outras funções de interpolação. Somente series_outliers() suporta valores de nulos em matrizes de entrada.
  • series_fill_linear() preserva o tipo original dos elementos da matriz.

Exemplo

O exemplo a seguir mostra como usar a função series_fill_linear() para preencher valores ausentes (nulos) nas matrizes usando interpolação linear. Ele preenche valores usando o arr original sem argumentos adicionais, usando valores de borda e excluindo valores de borda.

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)  

Output

arr without_args with_edges wo_edges with_const
[null,111.0,null,36.0,41.0,null,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] [nulo,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,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] [nulo,111,73,36,41,32,24,16,61,33,nulo,nulo] [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]