ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

fillmissing

構文

F = fillmissing(A,'constant',v)
F = fillmissing(A,method)
F = fillmissing(___,dim)
F = fillmissing(___,Name,Value)
[F,TF] = fillmissing(___)

説明

F = fillmissing(A,'constant',v) は、配列またはテーブルの欠損エントリを定数値 v で埋めます。A が行列または多次元配列の場合、v はスカラーまたはベクトルのいずれかにすることができます。v がベクトルの場合、各要素は A の対応する列の埋め込み値を指定します。A が table または timetable の場合、v はセル配列にすることもできます。

欠損値は、A のデータ型にしたがって定義されます。

  • NaNdoublesingleduration および calendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • ' 'char

  • {''} — 文字配列の cell

A が table の場合、各列のデータ型がその列の欠損値を定義します。

F = fillmissing(A,method) は、method で指定されたメソッドを使用して欠損エントリを埋めます。メソッドは次のいずれかにすることができます。

  • 'previous' — 前の非欠損値

  • 'next' — 次の非欠損値

  • 'nearest' — 最も近い非欠損値

  • 'linear' — 近傍の非欠損値の線形内挿 (数値、durationdatetime のデータ型のみ)

  • 'spline' — 区分的 3 次スプライン内挿 (数値、durationdatetime のデータ型のみ)

  • 'pchip' — 形状維持区分的 3 次スプライン内挿 (数値、durationdatetime のデータ型のみ)

F = fillmissing(___,dim) は、動作する対象の A の次元を指定します。既定では、fillmissing はサイズが 1 に等しくない最初の次元に沿って動作します。たとえば、A が行列の場合、fillmissing(A,2)A の列に沿って動作し、1 行ずつ欠損データを埋めます。

F = fillmissing(___,Name,Value) は、1 つ以上の名前と値のペアの引数を使用して、欠損値を埋めるための追加パラメーターを指定します。たとえば、fillmissing(A,'linear','SamplePoints',x) を使用して、欠損値を線形内挿するためのベクトル x を指定できます。

[F,TF] = fillmissing(___) は、埋められた A の要素に対応する論理配列も返します。

すべて折りたたむ

NaN 値を含むベクトルを作成し、各 NaN を前の非欠損値で置き換えます。

A = [1 3 NaN 4 NaN NaN 5];
F = fillmissing(A,'previous')
F =

     1     3     3     4     4     4     5

内挿を使用して、等間隔でないサンプル データ内の NaN 値を置き換えます。

等間隔でないサンプル点のベクトルを定義し、それらの点で正弦関数を評価します。

x = [-4*pi:0.1:0, 0.1:0.2:4*pi];
A = sin(x);

NaN 値を A に代入します。

A(A < 0.75 & A > 0.5) = NaN;

線形内挿を使用して欠損データを埋め、埋め込まれたベクトル F および論理ベクトル TF を返します。TF の要素の値 1 (true) は、埋め込まれた F の値に対応します。

[F,TF] = fillmissing(A,'linear','SamplePoints',x);

元のデータと埋め込まれたデータをプロットします。

plot(x,A,'.', x(TF),F(TF),'o')
xlabel('x');
ylabel('sin(x)')
legend('Original Data','Filled Missing Data')

欠損エントリを含む行列を作成し、線形内挿を使用して、一度に 1 行ずつ列 (2 番目の次元) を埋めます。各行の先頭および末尾の欠損値は、その行で最も近い非欠損値で埋めます。

A = [NaN NaN 5 3 NaN 5 7 NaN 9 NaN;
     8 9 NaN 1 4 5 NaN 5 NaN 5;
     NaN 4 9 8 7 2 4 1 1 NaN]
A =

   NaN   NaN     5     3   NaN     5     7   NaN     9   NaN
     8     9   NaN     1     4     5   NaN     5   NaN     5
   NaN     4     9     8     7     2     4     1     1   NaN

F = fillmissing(A,'linear',2,'EndValues','nearest')
F =

     5     5     5     3     4     5     7     8     9     9
     8     9     5     1     4     5     5     5     5     5
     4     4     9     8     7     2     4     1     1     1

データ型が異なる table 変数の欠損値を埋めます。

categoricaldouble および char のデータ型を含む複数の変数をもつ table を作成します。

A = table(categorical({'Sunny';'Cloudy';''}),[66;NaN;54],{'';'N';'Y'},[37;39;NaN],...
    'VariableNames',{'Description' 'Temperature' 'Rain' 'Humidity'})
A = 

    Description    Temperature    Rain    Humidity
    ___________    ___________    ____    ________

    Sunny           66            ''       37     
    Cloudy         NaN            'N'      39     
    <undefined>     54            'Y'     NaN     

すべての欠損エントリを前の要素の値で置き換えます。変数 Rain には前の要素がないため、欠損文字ベクトルは置き換えられません。

F = fillmissing(A,'previous')
F = 

    Description    Temperature    Rain    Humidity
    ___________    ___________    ____    ________

    Sunny          66             ''      37      
    Cloudy         66             'N'     39      
    Cloudy         54             'Y'     39      

A 内の変数 Temperature および HumidityNaN 値を 0 で置き換えます。

F = fillmissing(A,'constant',0,'DataVariables',{'Temperature','Humidity'})
F = 

    Description    Temperature    Rain    Humidity
    ___________    ___________    ____    ________

    Sunny          66             ''      37      
    Cloudy          0             'N'     39      
    <undefined>    54             'Y'      0      

あるいは、関数 isnumeric を使用して、動作対象の数値変数を識別します。

F = fillmissing(A,'constant',0,'DataVariables',@isnumeric)
F = 

    Description    Temperature    Rain    Humidity
    ___________    ___________    ____    ________

    Sunny          66             ''      37      
    Cloudy          0             'N'     39      
    <undefined>    54             'Y'      0      

入力引数

すべて折りたたむ

入力データ。ベクトル、行列、多次元配列、table または timetable として指定します。

A が timetable である場合は、table 値のみが埋められます。関連付けられた行時間のベクトルに NaT 値または NaN 値が含まれる場合、fillmissing はエラーを生成します。行時間は一意で、昇順にリストされていなければなりません。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

埋め込み定数。スカラー、ベクトルまたはセル配列として指定します。A が行列または多次元配列の場合、v はベクトルにすることができます。A が table または timetable の場合、v はセル配列にすることができます。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | cell | categorical | datetime | duration

埋め込みメソッド。文字ベクトルとして指定します。method は、次のいずれかにすることができます。

メソッド説明
'previous'前の非欠損値
'next'次の非欠損値
'nearest'最も近い非欠損値
'linear'近傍の非欠損値の線形内挿 (数値、durationdatetime のデータ型のみ)
'spline'区分的 3 次スプライン内挿 (数値、durationdatetime のデータ型のみ)
'pchip'形状維持区分的 3 次スプライン内挿 (数値、durationdatetime のデータ型のみ)

例: fillmissing(A,'linear')

データ型: char

演算の対象の次元。正の整数のスカラーとして指定します。値を指定しない場合、既定値は、サイズが 1 ではない最初の配列の次元です。

A が table または timetable の場合、dim はサポートされません。fillmissing は、個々の table または timetable の変数に対して個別に動作します。

2 次元の入力配列 A について考えます。

  • dim=1 の場合、fillmissing は列ごとに A を埋めます。

  • dim=2 の場合、fillmissing は行ごとに A を埋めます。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名前/値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: fillmissing(A,'DataVariables',{'Temperature','Altitude'}) は、入力テーブルの変数 TemperatureAltitude に対応する列のみを埋めます。

すべて折りたたむ

端点の処理メソッド。'EndValues' と、'extrap''previous''next''nearest''none' のいずれかで構成されるコンマ区切りのペアまたは定数スカラー値として指定します。端点埋め込みメソッドは、以下の定義に基づいて、先頭および末尾の欠損値を処理します。

メソッド説明
'extrap'method と同じ
'previous'前の非欠損値
'next'次の非欠損値
'nearest'最も近い非欠損値
'none'埋め込み値なし
スカラー定数値 (数値、durationdatetime のデータ型のみ)

例: 'EndValues','next'

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime | duration

埋め込みメソッドのサンプル点。'SamplePoints' と、入力データの内挿に使用されるベクトルから成るコンマ区切りのペアとして指定します。たとえば、ベクトル Ax の場合、x(i)A(i) のサンプリングを表します。ベクトルは並べ替える必要があり、重複要素が含まれていてはなりません。A が timetable の場合、既定値は関連付けられた行時間のベクトルです。それ以外の場合、既定値は 1 で始まる連続した正の整数のインデックス ベクトルです。

例: 'SamplePoints',x

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | datetime | duration

埋める対象の table 変数。'DataVariables' と、変数名、変数名のセル配列、数値ベクトル、論理ベクトルまたは関数ハンドルのいずれかで構成されるコンマ区切りのペアとして指定します。'DataVariables' 値は、入力テーブル内の埋める列を示し、次のいずれかにすることができます。

  • 単一の table 変数名を指定する文字ベクトル

  • 各要素が table 変数名である文字ベクトルのセル配列

  • table 変数インデックスのベクトル

  • 各要素が table 変数に対応する論理ベクトル。true の場合は対応する変数を含めて、false の場合は対応する変数を除外します。

  • @isnumeric などの論理スカラーを返す関数ハンドル

例: 'Age'

例: {'Height','Weight'}

例: @iscategorical

データ型: char | cell | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | function_handle

出力引数

すべて折りたたむ

埋め込まれたデータ。ベクトル、行列、多次元配列、table または timetable として返されます。FA と同じサイズです。

データ型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

埋め込まれたデータのインジケーター。ベクトル、行列または多次元配列として返されます。TF は論理配列であり、1 (true) は埋め込まれた F の要素に対応し、0 (false) は未変更の要素に対応します。TFA および F と同じサイズです。

データ型: logical

R2016b で導入

この情報は役に立ちましたか?