Main Content

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

standardizeMissing

插入标准缺失值

说明

示例

B = standardizeMissing(A,indicator) 将数组或表中由 indicator 指定的值替换为标准缺失值。

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

  • doublesingledurationcalendarDuration 的指示符为 NaN

  • datetime 的指示符为 NaT

  • string 的指示符为 <missing>

  • categorical 的指示符为 <undefined>

  • char 的指示符为 ' '

  • 字符数组的 cell 的指示符为 {''}

示例

A 是表或时间表时,B = standardizeMissing(A,indicator,'DataVariables',vars) 将对 vars 指定的变量中的缺失值进行标准化。

示例

全部折叠

创建一个行向量并将 -99 的所有实例替换为 double 数据类型的标准缺失值 NaN

A = [0 1 5 -99 8 3 4 -99 16];
B = standardizeMissing(A,-99)
B = 1×9

     0     1     5   NaN     8     3     4   NaN    16

创建一个包含 Inf'N/A' 的表来表示缺少的值。

dblVar = [NaN;3;Inf;7;9];
cellstrVar = {'one';'three';'';'N/A';'nine'};
charVar = ['A';'C';'E';' ';'I'];
categoryVar = categorical({'red';'yellow';'blue';'violet';''});

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

     NaN      {'one'   }       A       red        
       3      {'three' }       C       yellow     
     Inf      {0x0 char}       E       blue       
       7      {'N/A'   }               violet     
       9      {'nine'  }       I       <undefined>

Inf 的所有实例替换为 NaN,将 'N/A' 的所有实例替换为空字符向量 ''

B = standardizeMissing(A,{Inf,'N/A'})
B=5×4 table
    dblVar    cellstrVar    charVar    categoryVar
    ______    __________    _______    ___________

     NaN      {'one'   }       A       red        
       3      {'three' }       C       yellow     
     NaN      {0x0 char}       E       blue       
       7      {0x0 char}               violet     
       9      {'nine'  }       I       <undefined>

将表的指定变量中出现的 Inf'N/A' 的实例替换为标准缺失值指示符。

创建一个包含 Inf'N/A' 的表来表示缺少的值。

a = {'alpha';'bravo';'charlie';'';'N/A'};
x = [1;NaN;3;Inf;5];
y = [57;732;93;1398;Inf];

A = table(a,x,y)
A=5×3 table
         a          x      y  
    ___________    ___    ____

    {'alpha'  }      1      57
    {'bravo'  }    NaN     732
    {'charlie'}      3      93
    {0x0 char }    Inf    1398
    {'N/A'    }      5     Inf

对于变量 ax,将 Inf 的实例替换为 NaN,将 'N/A' 替换为空字符向量 ''

B = standardizeMissing(A,{Inf,'N/A'},'DataVariables',{'a','x'})
B=5×3 table
         a          x      y  
    ___________    ___    ____

    {'alpha'  }      1      57
    {'bravo'  }    NaN     732
    {'charlie'}      3      93
    {0x0 char }    NaN    1398
    {0x0 char }      5     Inf

变量 y 中的 Inf 保持不变,原因是 y 未包含在 'DataVariables' 名称-值对组参数中。

输入参数

全部折叠

输入数据,指定为向量、矩阵、多维数组、表或时间表。如果 A 是时间表,则 ismissing 仅作用于表数据,而忽略行时间向量中的 NaTNaN 值。

数据类型:double | single | char | string | cell | table | timetable | categorical | datetime | duration

非标准缺失值指示符,指定为标量、向量或元胞数组。indicator 的元素定义被 standardizeMissing 视为缺失的值。如果 A 为数组,则 indicator 必须为向量。如果 A 为表或时间表,则 indicator 也可以是具有多个数据类型条目的元胞数组。

indicator 中指定的数据类型与 A 中对应条目的数据类型相匹配。以下是 indicator 的元素与 A 的元素之间的其他数据类型匹配:

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

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

示例: B = standardizeMissing(A,'N/A') 将字符向量 'N/A' 替换为空字符向量 ''

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | datetime | duration

要标准化的表变量,指定为变量名称、变量名称元胞数组、数值向量、逻辑向量、函数句柄或表 vartype 下标。vars 可以是下列类型之一:

  • 指定单个表变量名称的字符向量

  • 字符向量元胞数组,其中每个元素都是表变量名称

  • 表变量索引向量

  • 逻辑向量,每个元素分别对应一个表变量,其中 true 指示包括对应变量,false 指示不包括对应变量。

  • 返回逻辑标量的函数句柄,例如 @isnumeric

  • vartype 下标

示例: 'Age'

示例: {'Height','Weight'}

示例: @iscategorical

示例: vartype('numeric')

输出参数

全部折叠

标准化数组或表,指定为向量、矩阵、多维数组、表或时间表。BA 具有相同的大小。

数据类型:double | single | char | string | cell | table | timetable | categorical | datetime | duration | calendarDuration

算法

对于字符向量元胞数组、字符数组和分类数组,standardizeMissing 以不同的方式处理前导和尾随空白。

  • 对于字符向量元胞数组,standardizeMissing 不忽略空白。所有字符向量必须与 indicator 中指定的字符向量完全匹配。

  • 对于字符数组,standardizeMissing 会忽略尾随空白。

  • 对于分类数组,standardizeMissing 会忽略前导和尾随空白。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

在 R2013b 中推出