清洗缺失数据
说明
清洗缺失数据任务允许您以交互方式处理缺失数据值,如 NaN
或 <missing>
。该任务会自动为您的实时脚本生成 MATLAB® 代码。
使用此任务,您可以:
查找、填充或删除工作区变量中的缺失数据。
自定义填充数据的方法。
定义非标准缺失值指示符。
可视化缺失数据和清洗后的数据。
更多
相关函数
清洗缺失数据生成使用 ismissing
、standardizeMissing
、fillmissing
和 rmmissing
函数的代码。
![](missinglet.png)
打开任务
要在 MATLAB 编辑器中将清洗缺失数据任务添加到实时脚本中,请执行以下操作:
在实时编辑器选项卡上,选择任务 > 清洗缺失数据。
在脚本的代码块中,键入相关关键字,例如
missing
、NaN
、fill
或remove
。从建议的命令自动填充项中选择清洗缺失数据。对于某些关键字,任务会自动更新一个或多个对应的参数。
示例
填充非均匀采样数据中的缺失条目
以交互方式填充非均匀采样数据中的缺失值。
创建非均匀采样点向量,并计算在这些点上的正弦函数值。
x = [-4*pi:0.1:0 0.1:0.2:4*pi]; A = sin(x);
将缺失值插入 A
中。
A(A < 0.75 & A > 0.5) = missing;
在实时编辑器中打开“清洗缺失数据”任务。要清洗数据,请选择 A
作为输入数据,选择 x
作为数据的 x 轴坐标。
“清洗缺失数据”任务可以填充或删除缺失数据。要使用相邻非缺失值的线性插值来填充缺失条目,请使用清洗方法字段选择 Fill missing
和 Linear interpolation
。
该任务绘制清洗后的数据,并指示线性插值填充了输入数据中的 21 个缺失条目。
由于默认图例位置会覆盖一些填充的缺失条目,请将图例位置指定为坐标区的右上角之外。
legend("Location","northeastoutside")
相关示例
参数
输入数据
— 来自工作区的有效输入数据
向量 | 表 | 时间表
此任务对包含在向量、表或时间表中的输入数据进行操作。数据类型可以是 single
、double
、duration
、calendarDuration
、datetime
、categorical
、string
、char
,或 cell
类型的字符向量数组。
为输入数据提供表或时间表时,请选择所有支持变量以清洗所有具有支持类型的变量。选择所有数值变量可清洗 single
或 double
类型的所有变量。要选择要清洗的特定支持变量,请选择指定的变量,然后单独选择各所需变量。
填充方法
— 填充缺失数据的方法
线性插值 (默认) | 常量值 | 上一个值 | ...
将填充缺失数据的方法指定为以下选项之一。
方法 | 描述 |
---|---|
线性插值 | 基于相邻的非缺失值进行线性插值 |
常量值 | 指定的标量值,默认为 0 |
上一个值 | 上一个非缺失值 |
下一个值 | 下一个非缺失值 |
最接近值 | 由 x 轴定义的最接近的非缺失值 |
样条插值 | 分段三次样条插值 |
保形三次插值(PCHIP) | 保形分段三次样条插值 |
修正 Akima 三次插值 | 修正 Akima 三次 Hermite 插值 |
移动中位数 | 具有指定窗口大小的移动中位数 |
移动均值 | 具有指定窗口大小的移动均值 |
K 最近邻 | 由距离函数定义的最近邻的均值 |
自定义函数 | 自定义填充方法,指定为局部函数或函数句柄 |
窗口
— 移动方法的窗口
居中 (默认) | 不对称
当填充缺失数据的方法是移动中位数或移动均值时,指定窗口类型和大小。
窗口 | 描述 |
---|---|
居中 | 指定的窗口长度以当前点为中心 |
不对称 | 指定的窗口包含当前点之前的元素数和当前点之后的元素数 |
窗口大小相对于 X 轴变量单位。
版本历史记录
在 R2019b 中推出R2023b: 使用 k
个最近邻行中附近的点的均值进行填充
使用 K 最近邻填充方法用附近的点的均值填充缺失条目。指定邻点的数量,并使用欧几里德距离、缩放欧几里德距离或自定义函数来定义行之间的距离。
R2022b: 绘制非数值表数据和多个表变量
在此实时编辑器任务的显示画面中绘制非数值数据。要显示分类直方图,请选择一个非数值输入数组,或将要显示的变量字段设置为包含 categorical
、string
、cellstr
、calendarDuration
或 char
数据类型的非数值表变量。
此外,您还可以在此任务的显示画面中同时绘制多个表变量。对于表或时间表数据,要在分块图布局中绘制多个变量,请设置要显示的变量字段。
R2022b: 指定缺失条目的最小数量和自定义填充方法
指定删除一行数据所需的最少缺失条目数。当选择多个表变量或数据矩阵进行清洗时,选择删除缺失清洗方法,并使用可删行最小缺失条目字段指定缺失条目的最小数量。
此外,您还可以指定填充缺失数据的自定义方法。首先,选择填充缺失清洗方法,然后通过选择自定义函数清洗方法参数和局部函数或函数句柄选项来指定自定义填充方法。
R2022b: 追加已清洗的表变量
在输入表变量中追加包含清洗后数据的表变量。对于表或时间表输入数据,要追加清洗后的数据,请设置输出格式字段。
R2022a: 如果输入包含的元素超过一百万个,则实时编辑器任务不会自动运行
如果输入包含的元素超过一百万个,则此实时编辑器任务不会自动运行。在以前的版本中,对于任何大小的输入,该任务始终自动运行。如果输入包含大量元素,则由此任务生成的代码可能需要相当长的时间来运行(超过几秒)。
当任务不自动运行时,自动运行指示符会被禁用。您可以在需要时手动运行任务,也可以选择启用任务自动运行。
R2021a: 对多个表变量进行操作
此实时编辑器任务可以同时对多个表变量进行操作。对于表或时间表输入数据,要对多个变量进行操作,请选择所有支持变量或指定的变量。返回所有变量或仅返回修改后的变量,并指定要可视化的变量。
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)