standardizeMissing
插入标准缺失值
说明
使用一个或多个名称-值参量指定用于标准化缺失值的附加参量。例如,当 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
对于变量 a
和 x
,将 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
— 输入数据
向量 | 矩阵 | 多维数组 | 表 | 时间表
输入数据,指定为向量、矩阵、多维数组、表或时间表。如果 A
是时间表,则 standardizeMissing
仅作用于表数据,而忽略行时间向量中的 NaT
和 NaN
值。
数据类型:double
| single
| char
| string
| cell
| table
| timetable
| categorical
| datetime
| duration
indicator
— 非标准缺失值指示符
标量 | 向量 | 元胞数组
非标准缺失值指示符,指定为标量、向量或元胞数组。indicator
的元素定义被 standardizeMissing
视为缺失的值。如果 A
为数组,则 indicator
必须为向量。如果 A
为表或时间表,则 indicator
也可以是具有多个数据类型条目的元胞数组。
indicator
中指定的数据类型与 A
中对应条目的数据类型相匹配。以下是 indicator
的元素与 A
的元素之间的其他数据类型匹配:
double
指示符匹配A
中的double
、single
、整数和logical
条目。string
和char
指示符匹配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
— 要对其进行操作的表变量
表变量名称 | 标量 | 向量 | 元胞数组 | 模式 | 函数句柄 | 表 vartype
下标
要对其进行操作的表变量,指定为下表中的选项之一。DataVariables
值指示要填充输入表的哪些变量。
表中未由 DataVariables
指定的其他变量会传递给输出,而不会对其进行标准化。
索引方案 | 示例 |
---|---|
变量名称:
|
|
变量索引:
|
|
函数句柄:
|
|
变量类型:
|
|
示例: standardizeMissing(T,indicator,'DataVariables',["Var1" "Var2" "Var4"])
ReplaceValues
— 替换值指示符
true
或 1
(默认) | false
或 0
替换值指示符,当 A
是表或时间表时,指定为以下值之一:
true
或1
- 用标准化的表变量替换包含缺失条目的输入表变量。false
或0
- 向输入表追加已检查缺失条目的所有表变量。附加变量中缺失的条目是标准化的。
对于向量、矩阵或多维数组输入数据,不支持 ReplaceValues
。
除非 ReplaceValues
的值为 false
,否则 B
与 A
的大小相同。如果 ReplaceValues
的值是 false
,则 B
的宽度是输入数据宽度和指定的数据变量数目之和。
示例: standardizeMissing(T,indicator,'ReplaceValues',false)
算法
对于字符向量元胞数组、字符数组和分类数组,standardizeMissing
以不同的方式处理前导和尾随空白。
对于字符向量元胞数组,
standardizeMissing
不忽略空白。所有字符向量必须与indicator
中指定的字符向量完全匹配。对于字符数组,
standardizeMissing
会忽略尾随空白。对于分类数组,
standardizeMissing
会忽略前导和尾随空白。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
此函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
非标准缺失值指示符必须为标量或向量。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2013b 中推出R2022b: 字符数组没有标准缺失值
字符数组没有标准缺失值的默认定义。因此,standardizeMissing
不替换字符数组中的值。例如,standardizeMissing(['ab'; 'NA'],'NA')
返回逻辑数组 ['ab'; 'NA']
。以前,它返回 ['ab'; ' ']
。
R2022a: 追加标准化值
现在,您可以向输入表追加所有已检查缺失条目的表变量。附加变量中缺失的条目是标准化的。通过将 ReplaceValues
名称-值参量设置为 false
,即可追加而不是替换表变量。
只有表和时间表输入数据支持 ReplaceValues
名称-值参量。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)