Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

ismissing

查找缺失值

说明

示例

TF = ismissing(A) 返回逻辑数组,指示数组或表中的哪些元素包含缺失值。TF 的大小与 A 的大小相同。

标准缺失值取决于数据类型:

  • doublesingledurationcalendarDuration 的指示符为 NaN

  • datetime 的指示符为 NaT

  • string 的指示符为 <missing>

  • categorical 的指示符为 <undefined>

  • char 的指示符为 ' '

  • 字符向量 cell 的指示符为 {''}

示例

TF = ismissing(A,indicator)indicator 中的值视为缺失值指示符,而忽略上述语法中列出的所有默认指示符。indicator 可以是单个指示符,也可以是多个指示符。例如,如果 Adouble 类型的数组,则 ismissing(A,[0,-99]) 会将 0 和 -99 视为缺失的 double 值,而不是将 NaN 视为缺失值。

示例

全部折叠

创建一个包含 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 中具有缺失值的对应元素位置返回 1。

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'''-99NaNInf 表示缺失值。然后,找出具有缺失值的元素。

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 中具有缺失值的对应元素位置返回 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 中的空白均识别为缺失值。

输入参数

全部折叠

输入数据,指定为向量、矩阵、多维数组、表或时间表。

如果 A 是时间表,则 ismissing 仅作用于表数据,而忽略行时间向量中的 NaTNaN 值。

当输入参数是元胞数组时,它必须为字符向量元胞数组。如果输入是包含类型为 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 值作为表示为 NaNNaTmissing<undefined> 的任何缺失数据的指示符。如果您的输入是一个表,则 missing 也是缺失字符向量 (' ') 和缺失字符向量元胞数组 ({''}) 的指示符。

指示符的数据类型与 A 中条目的数据类型相匹配。下面列出了指示符与 A 的元素之间的其他数据类型匹配:

  • double 指示符匹配 A 中的 doublesingle、整数和 logical 条目。

  • stringchar 指示符以及字符向量元胞数组形式的指示符匹配 A 中的 string 条目。

  • stringchar 指示符匹配 A 中的 categorical 条目。

示例: 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++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

在 R2013b 中推出