Main Content

ismissing

説明

TF = ismissing(A) は、入力データのどの要素に欠損値が含まれるかを示す logical 配列を返します。TF のサイズは、A と同じサイズです。

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

  • NaNdoublesingleduration および calendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • ' 'char

  • {''} — 文字ベクトルの cell

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

標準欠損値の既定の定義がないデータ型の場合、ismissing(A) はサイズが A と同じである logical 0 (false) 値の配列または table を返します。

TF = ismissing(A,indicator)indicator の値を欠損値インジケーターとして扱い、前述の構文でリストされている既定のインジケーターすべてを無視します。indicator は 1 つのインジケーターまたは複数のインジケーターです。たとえば、Adouble 型の配列である場合、ismissing(A,[0,-99]) は 0 と -99 を NaN ではなく double 型の欠損値として扱います。

TF = ismissing(___'OutputFormat',format) は、table または timetable の入力データについて、前述の任意の構文の出力データ型を指定します。

すべて折りたたむ

NaN 値を含む行ベクトル A を作成して、A 内のそれらの場所を特定します。

A = [3 NaN 5 6 7 NaN NaN 9];
TF = ismissing(A)
TF = 1x8 logical array

   0   1   0   0   0   1   1   0

さまざまなデータ型の変数が存在するテーブルを作成します。

dblVar = [NaN;3;5;7;9;11;13];
singleVar = single([1;NaN;5;7;9;11;13]);
cellstrVar = {'one';'three';'';'seven';'nine';'eleven';'thirteen'};
charVar = ['A';'C';'E';' ';'I';'J';'L'];
categoryVar = categorical({'red';'yellow';'blue';'violet';'';'ultraviolet';'orange'});
dateVar = [datetime(2015,1:2:10,15) NaT datetime(2015,11,15)]';
stringVar = ["a";"b";"c";"d";"e";"f";missing];

A = table(dblVar,singleVar,cellstrVar,charVar,categoryVar,dateVar,stringVar)
A=7×7 table
    dblVar    singleVar     cellstrVar     charVar    categoryVar      dateVar      stringVar
    ______    _________    ____________    _______    ___________    ___________    _________

     NaN           1       {'one'     }       A       red            15-Jan-2015    "a"      
       3         NaN       {'three'   }       C       yellow         15-Mar-2015    "b"      
       5           5       {0x0 char  }       E       blue           15-May-2015    "c"      
       7           7       {'seven'   }               violet         15-Jul-2015    "d"      
       9           9       {'nine'    }       I       <undefined>    15-Sep-2015    "e"      
      11          11       {'eleven'  }       J       ultraviolet            NaT    "f"      
      13          13       {'thirteen'}       L       orange         15-Nov-2015    <missing>

欠損値をもつ要素を検出します。

ismissing は配列を返します。この配列の要素はいずれも、A の対応する要素が欠損値をもつ場合に logical 1 となります。TF のサイズは、A と同じサイズです。

TF = ismissing(A)
TF = 7x7 logical array

   1   0   0   0   0   0   0
   0   1   0   0   0   0   0
   0   0   1   0   0   0   0
   0   0   0   1   0   0   0
   0   0   0   0   1   0   0
   0   0   0   0   0   1   0
   0   0   0   0   0   0   1

'NA'''-99NaN および Inf が欠損値を表す table を作成します。その後、欠損値をもつ要素を検出します。

dblVar = [NaN;3;Inf;7;9];
int8Var = int8([1;3;5;7;-99]);
cellstrVar = {'one';'three';'';'NA';'nine'};
charVar = ['A';'C';'E';' ';'I'];

A = table(dblVar,int8Var,cellstrVar,charVar)
A=5×4 table
    dblVar    int8Var    cellstrVar    charVar
    ______    _______    __________    _______

     NaN          1      {'one'   }       A   
       3          3      {'three' }       C   
     Inf          5      {0x0 char}       E   
       7          7      {'NA'    }           
       9        -99      {'nine'  }       I   

欠損値インジケーターを指定します。ismissing は配列を返します。この配列の要素はいずれも、A の対応する要素が欠損値をもつ場合に logical 1 となります。

id = {'NA' '' -99 NaN Inf};
TF = ismissing(A,id)
TF = 5x4 logical array

   1   0   0   0
   0   0   0   0
   1   0   1   0
   0   0   1   1
   0   1   0   0

ismissing は文字配列の末尾の空白を無視します。したがって、空の文字ベクトル '' が欠損値インジケーターとして指定されているため、ismissing は、A.cellstrVar 内の空の文字ベクトルと A.charVar 内の空白スペースを欠損値として識別します。

入力引数

すべて折りたたむ

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

  • A が timetable の場合、ismissing は table データに対してのみ操作を実行し、行時間のベクトルにある NaT 値と NaN 値を無視します。

  • A が cell 配列、または cell 配列変数をもつ table の場合、ismissing は cell 配列が文字ベクトルを含む場合のみ欠損要素を検出します。

欠損値インジケーター。スカラー、ベクトルまたは cell 配列として指定します。

  • A が配列の場合、indicator はベクトルでなければなりません。

  • A が table または timetable の場合、indicator は複数のデータ型のエントリをもつ cell 配列にすることもできます。

indicator のエントリは、ismissing が欠損値として処理し、すべての既定の標準欠損値インジケーターをオーバーライドする値を示します。標準インジケーターのリストを保持したままインジケーターを追加するには、すべての既定のインジケーターを indicator の要素として含めなければなりません。たとえば、Acategorical 値と数値をもつ table である場合、ismissing(A,{-99,'<undefined>'}) を使用して、-99 を数値の欠損値として示しますが、categorical の欠損値として <undefined> を保持しなければなりません。

また、missing 値を NaNNaTmissing または <undefined> として表される任意の欠損データのインジケーターとして使用できます。A が table である場合、missing は欠損文字ベクトル (' ') と文字ベクトルの欠損 cell 配列 ({''}) のインジケーターにもなります。

インジケーター データ型は A のエントリのデータ型と一致します。以下は、インジケーターと A の要素の間で一致する追加のデータ型です。

  • double インジケーターは、Adoublesingle、整数および logical のエントリに一致します。

  • string および char インジケーターと、文字ベクトルの cell 配列であるインジケーターは、Astring エントリと一致します。

  • string および char インジケーターは、Acategorical エントリと一致します。

例: TF = ismissing(A,0) は、欠損値として 0 だけを認識します。

出力データ型。次の値のいずれかとして指定します。

  • 'logical' — 入力データが table または timetable の場合、出力 TF を logical 配列として返します。

  • 'tabular' — 入力データが table の場合、出力 TF を table として返します。入力データが timetable の場合、出力 TF を timetable として返します。

入力データがベクトル、行列、または多次元配列の場合、OutputFormat はサポートされません。

例: ismissing(T,'OutputFormat','tabular')

ヒント

  • 整数変数は NaN を保存できないため、欠損している整数データを示すには (他では使われない) 特殊な整数値を使用します (-99 など)。

  • 欠損 string の検出の詳細については、空の string と欠損値のテストを参照してください。

アルゴリズム

ismissing は、文字ベクトルの cell 配列、文字配列または categorical 配列のインジケーターで先頭と末尾の空白を異なる方法で扱います。

  • 文字ベクトルの cell 配列の場合、ismissing はインジケーターの空白を無視しません。すべての文字ベクトルが正確に一致していなければなりません。

  • table 変数の文字配列の場合、ismissing は、インジケーターの末尾の空白を無視します。

  • categorical 配列の場合、ismissing は、インジケーターの先頭と末尾の空白を無視します。

拡張機能

バージョン履歴

R2013b で導入

すべて展開する

R2022a での動作変更