Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

standardizeMissing

插入标准缺失值

说明

示例

B = standardizeMissing(A,indicator)A 中的标准缺失值替换 indicator 中指定的值,并返回一个标准化数组或表。

缺失值的定义取决于 A 的数据类型:

  • NaN - doublesingledurationcalendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • {''} - 字符向量的 cell

如果 A 是表,则每个变量的数据类型定义该变量的缺失值。

示例

B = standardizeMissing(___,Name,Value) 使用一个或多个名称-值参量指定用于标准化缺失值的附加参量。例如,当 A 是表或时间表时,standardizeMissing(A,indicator,'DataVariables',datavars) 将对 datavars 指定的变量中的缺失值进行标准化。

示例

全部折叠

创建一个行向量并将 -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 是时间表,则 standardizeMissing 仅作用于表数据,而忽略行时间向量中的 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

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: standardizeMissing(T,indicator,'ReplaceValues',false)

要对其进行操作的表变量,指定为下表中的选项之一。DataVariables 值指示要填充输入表的哪些变量。

表中未由 DataVariables 指定的其他变量会传递给输出,而不会对其进行标准化。

索引方案示例

变量名称:

  • 字符串、字符向量或元胞数组

  • pattern 对象

  • "A"'A' - 名为 A 的变量

  • ["A","B"]{'A','B'} - 两个名为 AB 的变量

  • "Var"+digitsPattern(1) - 变量名为 "Var" 后跟一个数字

变量索引:

  • 引用变量在表中位置的索引编号

  • 由数字组成的向量

  • 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0false

  • 3 - 表中的第三个变量

  • [2 3] - 表中的第二个和第三个变量

  • [false false true] - 第三个变量

函数句柄:

  • 函数句柄,以表变量作为输入并返回逻辑标量

  • @isnumeric - 所有包含数值的变量

变量类型:

  • vartype 下标,用于选择指定类型的变量

  • vartype("numeric") - 所有包含数值的变量

示例: standardizeMissing(T,indicator,'DataVariables',["Var1" "Var2" "Var4"])

替换值指示符,当 A 是表或时间表时,指定为以下值之一:

  • true1 - 用标准化的表变量替换包含缺失条目的输入表变量。

  • false0 - 向输入表追加已检查缺失条目的所有表变量。附加变量中缺失的条目是标准化的。

对于向量、矩阵或多维数组输入数据,不支持 ReplaceValues

除非 ReplaceValues 的值为 false,否则 BA 的大小相同。如果 ReplaceValues 的值是 false,则 B 的宽度是输入数据宽度和指定的数据变量数目之和。

示例: standardizeMissing(T,indicator,'ReplaceValues',false)

算法

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

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

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

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

扩展功能

版本历史记录

在 R2013b 中推出

全部展开