Sdílet prostřednictvím


series_fill_linear()

Lineárně interpoluje chybějící hodnoty v řadě.

Přebírá výraz obsahující dynamickou číselnou matici jako vstup, provádí lineární interpolaci pro všechny instance missing_value_placeholder a vrátí výslednou matici. Pokud začátek a konec pole obsahují missing_value_placeholder, nahradí se nejbližší jinou hodnotou než missing_value_placeholder. Tuto funkci je možné vypnout. Pokud se celá matice skládá z missing_value_placeholder, je pole vyplněno constant_value nebo 0, pokud není zadáno.

Syntaxe

series_fill_linear(řada, [ missing_value_placeholder [,fill_edges [, constant_value ]]])

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
řada dynamic ✔️ Matice číselných hodnot.
missing_value_placeholder skalární Určuje zástupný symbol pro chybějící hodnoty. Výchozí hodnota je double(null). Hodnota může být jakéhokoli typu, který bude převeden na skutečné typy prvků. double(null), long(null) a int(null) mají stejný význam.
fill_edges bool Určuje, zda má být missing_value_placeholder na začátku a konci pole nahrazena nejbližší hodnotou. true ve výchozím nastavení. Pokud je nastavená hodnota false, bude missing_value_placeholder na začátku a na konci pole zachována.
constant_value skalární Relevantní pouze pro pole, která se zcela skládají z hodnot null . Tento parametr určuje konstantní hodnotu, se kterou chcete vyplnit řadu. Výchozí hodnota je 0. Nastavením tohoto parametru na double(hodnotu null) zachováte hodnoty null.

Návraty

Lineární interpolace řad pomocí zadaných parametrů. Pokud řada obsahuje pouze int nebo long prvky, vrátí lineární interpolace zaokrouhlené interpolované hodnoty, nikoli přesné hodnoty.

Poznámka:

  • Pokud vytváříte řadu pomocí operátoru make-series , zadejte hodnotu null jako výchozí hodnotu pro použití interpolačních funkcí jako series_fill_linear() potom. Viz vysvětlení.
  • Pokud je missing_value_placeholder double(null) nebo vynechán, může výsledek obsahovat hodnoty null . K vyplnění těchto hodnot null použijte jiné interpolační funkce. Pouze series_outliers() podporuje hodnoty null ve vstupních polích.
  • series_fill_linear() zachová původní typ prvků pole.

Příklad

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)  

Výstup

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] [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,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]