Main Content

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

standardizeMissing

插入标准缺失值

说明

示例

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

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

  • NaN - doublesingledurationcalendarDuration

  • NaTdatetime

  • <missing>string

  • <undefined>categorical

  • ' 'char

  • {''} - 字符向量的 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 指定的其他变量会传递给输出,而不会对其进行标准化。

选项描述示例
变量名称

指定单个表变量名称的字符向量或标量字符串

'Var1'

"Var1"

变量名称的向量

字符向量元胞数组或字符串数组,其中每个元素表示一个表变量名称

{'Var1' 'Var2'}

["Var1" "Var2"]

变量索引的标量或向量

表变量索引的标量或向量

1

[1 3 5]

逻辑向量

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

[true false true]

函数句柄

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

@isnumeric

vartype 下标

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 中推出

全部展开