ismissing

Найдите отсутствующие значения

Синтаксис

TF = ismissing(A)
TF = ismissing(A,indicator)

Описание

пример

TF = ismissing(A) возвращает логический массив, который указывает, какие элементы массива или таблицы содержат отсутствующие значения. Размер TF совпадает с размером A.

Стандартные отсутствующие значения зависят от типа данных:

  • NaN для double, single, duration и calendarDuration

  • NaT для datetime

  • <missing> для string

  • <undefined> для categorical

  • ' ' для char

  • {''} для cell векторов символов

пример

TF = ismissing(A,indicator) обрабатывает значения в indicator как индикаторы отсутствующего значения, игнорируя все индикаторы по умолчанию, перечисленные в предыдущем синтаксисе. indicator может быть одним индикатором или несколькими индикаторами. Например, если A является массивом типа double, то ismissing(A,[0,-99]) обрабатывает 0 и-99 как недостающие значения double вместо NaN.

Примеры

свернуть все

Создайте вектор - строку A, который содержит значения NaN, и идентифицируйте их местоположение в 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       ''               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 возвращается 1, где соответствующий элемент в 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

Размер TF совпадает с размером A.

Составьте таблицу, где 'NA', '', -99, NaN и Inf представляют отсутствующие значения. Затем найдите элементы с отсутствующими значениями.

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       ''              E   
       7          7       'NA'                
       9        -99       'nine'          I   

ismissing возвращается 1, где соответствующий элемент в A имеет отсутствующее значение.

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 как отсутствующие значения.

Входные параметры

свернуть все

Входные данные, заданные как вектор, матрица, многомерный массив, таблица или расписание.

Если A является расписанием, то ismissing работает с табличными данными только и игнорирует NaT или значения NaN в векторе времен строки.

Когда входной параметр является массивом ячеек, это должен быть массив ячеек из символьных векторов. Если вход является таблицей или расписанием с переменной типа cell, то ismissing только обнаруживает недостающие элементы, когда переменная является массивом ячеек из символьных векторов.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

Индикаторы отсутствующего значения, заданные как скаляр, вектор или массив ячеек. Если A является массивом, то indicator должен быть вектором. Если A является таблицей или расписанием, то indicator может также быть массивом ячеек с записями нескольких типов данных.

Записи indicator указывают на значения, которые ismissing обрабатывает как пропавшие без вести. Определение indicator заменяет все стандартные недостающие индикаторы по умолчанию. Если вы хотите добавить индикаторы при ведении списка стандартных индикаторов, то необходимо включать все индикаторы по умолчанию как элементы indicator. Например, если A является таблицей с categorical и числовыми значениями, используйте ismissing(A,{-99,'<undefined>'}), чтобы указать на -99 как на недостающее числовое значение, но сохранить <undefined> как недостающее значение categorical.

Можно также использовать значение missing в качестве индикатора для любых недостающих данных, представленных как NaN, NaT, missing или <undefined>. Если ваш вход является таблицей, то missing является также индикатором для векторов отсутствующего символа (' ') и недостающие массивы ячеек из символьных векторов ({''}).

Типы данных индикатора совпадают с типами данных в записях A. Следующее является дополнительными соответствиями типа данных между индикатором и элементами A:

  • Индикаторы double совпадают с double, single, целым числом и записями logical A.

  • Индикаторы string и char и индикаторы, которые являются массивами ячеек из символьных векторов, совпадают с записями string A.

  • Индикаторы string и char совпадают с записями categorical A.

Пример: TF = ismissing(A,0) распознает только 0 отсутствующим значением.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | datetime | duration

Советы

  • Поскольку целочисленные переменные не могут сохранить NaN, использовать специальное целочисленное значение (в противном случае неиспользованное), чтобы указать на недостающие целочисленные данные, такие как -99.

  • Для получения дополнительной информации о нахождении отсутствующих строк см. Тест на пустые строки и отсутствующие значения.

Алгоритмы

Продвижение указателей ismissing и конечный пробел по-другому для индикаторов, которые являются массивами ячеек из символьных векторов, символьными массивами или категориальными массивами.

  • Для массивов ячеек из символьных векторов ismissing не игнорирует пробел индикатора. Все векторы символов должны соответствовать точно.

  • Для символьных массивов в табличных переменных ismissing игнорирует конечный пробел в индикаторе.

  • Для категориальных массивов ismissing игнорирует продвижение и конечный пробел в индикаторе.

Расширенные возможности

Введенный в R2013b