主要内容

standardizeMissing

插入标准缺失值

说明

B = standardizeMissing(A,indicator)A 中与非标准缺失值指示符匹配的值替换为标准缺失值。

标准缺失值根据 A 的数据类型定义,或如果 A 是表,则根据每个变量的数据类型定义:

  • NaN - doublesingledurationcalendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

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

除了标准化缺失值之外,您还可以通过将清洗缺失数据任务添加到实时脚本中以交互方式查找、填充或删除缺失数据。

示例

B = standardizeMissing(___,Name=Value) 使用一个或多个名称-值参量指定用于标准化缺失值的其他参数。例如,当 A 是表或时间表时,standardizeMissing(A,indicator,DataVariables=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" 的实例替换为标准缺失值指示符。

创建一个包含 Inf"N/A" 的表来表示非标准缺失值。

x = ["alpha"; "bravo"; "charlie"; missing; "N/A"];
y = [1; NaN; 3; Inf; 5];
z = [57; 732; 93; 398; Inf];

A = table(x,y,z)
A=5×3 table
        x         y      z 
    _________    ___    ___

    "alpha"        1     57
    "bravo"      NaN    732
    "charlie"      3     93
    <missing>    Inf    398
    "N/A"          5    Inf

Inf 的所有实例替换为 NaN,将 "N/A" 替换为 <missing>

B = standardizeMissing(A,{Inf,'N/A'})
B=5×3 table
        x         y      z 
    _________    ___    ___

    "alpha"        1     57
    "bravo"      NaN    732
    "charlie"      3     93
    <missing>    NaN    398
    "N/A"          5    NaN

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

创建一个包含 Inf"N/A" 的表来表示非标准缺失值。

x = ["alpha"; "bravo"; "charlie"; missing; "N/A"];
y = [1; NaN; 3; Inf; 5];
z = [57; 732; 93; 398; Inf];

A = table(x,y,z)
A=5×3 table
        x         y      z 
    _________    ___    ___

    "alpha"        1     57
    "bravo"      NaN    732
    "charlie"      3     93
    <missing>    Inf    398
    "N/A"          5    Inf

对于变量 xy,将 Inf 的实例替换为 NaN,将 "N/A" 的实例替换为 <missing>Inf 在表变量 z 中保持不变,因为 z 未包含在 DataVariables 名称-值参量中。

B = standardizeMissing(A,{Inf "N/A"},DataVariables=["x" "y"])
B=5×3 table
        x         y      z 
    _________    ___    ___

    "alpha"        1     57
    "bravo"      NaN    732
    "charlie"      3     93
    <missing>    NaN    398
    <missing>      5    Inf

输入参数

全部折叠

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

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

非标准缺失值指示符,指定为 standardizeMissing 函数应视为缺失值的标量、向量或元胞数组。

  • 如果 A 是数组,则 indicator 必须为标量或向量。

  • 如果 A 为表或时间表,则 indicator 也可以是具有多个数据类型条目的元胞数组。

indicator 的条目会覆盖所有标准缺失值指示符。要在维护标准列表的同时指定附加指示符,请将 missing 作为元素包含在 indicator 中。

每个指示符用于标识同一个类的 A 中的缺失元素。这些指示符也与不同类的 A 中的元素匹配:

  • double 指示符也与 A 的数值条目匹配。

  • stringchar 和字符向量元胞数组指示符也与 Acategoricalstring 条目匹配。

  • single、整数和 logical 指示符也与 Adouble 条目匹配。

示例: B = standardizeMissing(A,0}) 仅将 0 识别为缺失值。

示例: 对于分类数组 B = standardizeMissing(A,["Unset" missing]),除了 A 值的标准缺失值之外,"Unset" 还将 categorical 识别为缺失值。

示例: 对于表 B = standardizeMissing(T,{-99 missing}),除了每个表变量类型的标准缺失值,T 还将 -99 识别为缺失值。

名称-值参数

全部折叠

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

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

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

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

索引方案要指定的值示例

变量名称

  • 字符串标量或字符向量

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

  • pattern 对象

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

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

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

变量索引

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

  • 由数字组成的向量

  • 一个 logical 向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0 (false) 值。

  • 3 - 表中的第三个变量

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

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

函数句柄

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

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

变量类型:

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

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

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

是否替换表或时间表中的值,指定为以下值之一:

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

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

对于矩阵输入数据,不支持 ReplaceValues

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

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

输出参量

全部折叠

标准化后的数据,以向量、矩阵、多维数组、表或时间表形式返回。B 具有与 A 相同的大小和数据类型,除非 ReplaceValues 的值为 false

算法

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

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

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

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

替代功能

实时编辑器任务

除了标准化缺失值之外,您还可以通过将清洗缺失数据任务添加到实时脚本中以交互方式查找、填充或删除缺失数据。

Clean Missing Data task in the Live Editor

扩展功能

全部展开

版本历史记录

在 R2013b 中推出

全部展开