Main Content

ismissing

説明

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

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

  • NaNdoublesingleduration および calendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • {''} — 文字ベクトルの 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; 2; 3; 4; 5; 6];
singleVar = single([1; NaN; 3; 4; 5; 6]);
cellstrVar = {'one'; 'two'; ''; 'four'; 'five'; 'six'};
categoryVar = categorical({'red'; 'orange'; 'yellow'; ''; 'blue'; 'indigo'});
dateVar = [datetime(2015,1:4,15) NaT datetime(2015,6,15)]';
stringVar = ["a"; "b"; "c"; "d"; "e"; missing];

A = table(dblVar,singleVar,cellstrVar,categoryVar,dateVar,stringVar)
A=6×6 table
    dblVar    singleVar    cellstrVar    categoryVar      dateVar      stringVar
    ______    _________    __________    ___________    ___________    _________

     NaN           1       {'one'   }    red            15-Jan-2015    "a"      
       2         NaN       {'two'   }    orange         15-Feb-2015    "b"      
       3           3       {0x0 char}    yellow         15-Mar-2015    "c"      
       4           4       {'four'  }    <undefined>    15-Apr-2015    "d"      
       5           5       {'five'  }    blue                   NaT    "e"      
       6           6       {'six'   }    indigo         15-Jun-2015    <missing>

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

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

TF = ismissing(A)
TF = 6x6 logical array

   1   0   0   0   0   0
   0   1   0   0   0   0
   0   0   1   0   0   0
   0   0   0   1   0   0
   0   0   0   0   1   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 内の空白スペースを欠損値として識別します。

入力引数

すべて折りたたむ

入力データ。ベクトル、行列、多次元配列、文字ベクトルの cell 配列、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 と欠損値のテストを参照してください。

  • 入力データが構造体配列、または文字ベクトル以外の cell 配列である場合、ismissingfalse を返します。構造体配列内の欠損値を見つけるには、関数 structfun を使用して、構造体の各フィールドに ismissing を適用します。文字ベクトル以外の cell 配列内の欠損値を見つけるには、関数 cellfun を使用して、cell 配列の各 cell に ismissing を適用します。

アルゴリズム

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

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

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

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

拡張機能

バージョン履歴

R2013b で導入

すべて展開する