exponenta event banner

ismissing

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

Описание

пример

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       {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 возвращает 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      {0x0 char}       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 игнорирует ведущее и заключительное пробелы в индикаторе.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2013b