清理表中杂乱和缺失的数据
此示例演示如何查找、清除和删除缺少数据的表行。
加载示例数据
从逗号分隔的文本文件加载示例数据,messy.csv
.该文件包含许多不同的缺失数据指示器:
空字符向量(")
句点(.)
NA
南
-99年
属性指定要作为空值处理的字符向量“TreatAsMissing”
参数的名称-值对参数readtable
函数。(使用disp
函数显示所有21行,即使在作为实时脚本运行此示例时也是如此。)
T = readtable (“messy.csv”,“TreatAsMissing”, {“。”,“NA”});disp (T)
A B C D E ________ ____ __________ ____ ____ {' afe1 '}{'是的'}3 3{‘egh3}南{‘不’}7 7{‘wth4}{'是的'}3 3{‘atn2} 23{‘不’}23日23{‘__arg1}{'是的'}5 5{‘jre3} 34.6{'是的'}34.6 - 34.6{‘wen9} 234{'是的'}234 234{‘ple2}{‘不’}2 2{‘dbo8}{‘不’}5 5{‘oii4}{'是的'}5 245{‘wnk3}{'是的'}245 245{‘abk6} 563 {0 x0 char} 563 563{‘pnj5} 463{‘不’}463 463{‘wnn3}{‘不’}6 6{‘oks9} 23{'是的'}23日23{‘wba3}南{'是的'}南14{‘pkn4}{‘不’}2 2{' adw3} 22{‘不’}22 22{‘poj2} -99{'是的'}-99 -99{‘bas8} 23{‘不’}23日23{‘gry5}南{'是的'}南21
T
是一个包含21行和5个变量的表。“TreatAsMissing”
只适用于文件中的数字列,不能处理指定为文本的数值,例如“-99”
.
总结表
控件创建表摘要,以查看每个变量的数据类型、描述、单位和其他描述性统计信息总结
函数。
总结(T)
变量:A: 21x1 cell array of character vector B: 21x1 double值:Min -99 Median 14 Max 563 NumMissing 3 C: 21x1 cell array of character vector D: 21x1 double值:Min -99 Median 7 Max 563 NumMissing 2 E: 21x1 double值:Min -99 Median 14 Max 563
从文件导入数据时,默认为forreadtable
将任何具有非数字元素的变量作为字符向量的单元格数组读取。
查找缺少值的行
显示表中的行子集,T
,它们至少缺少一个值。
TF = ismissing (T) {''“。”“NA”南-99});rowsWithMissing = T(任何(TF, 2):);disp (rowsWithMissing)
A B C D E ________ ___ __________ ___ ___ {' egh3}南{‘不’}7 563{“abk6”}{0 x0 char} 563 563{‘wba3}南{'是的'}南-99{‘poj2}{'是的'}-99 -99{‘gry5}南{'是的'}南21
readtable
取代“。”
而且“NA”
与南
在数值变量中,B
,D
,E
.
更换缺失的数值指标
清理数据,以便代码指示的缺失值-99年
具有标准的MATLAB®数字缺失值指示器,南
.
T = standardizeMissing (T, -99);disp (T)
A B C D E ________ ____ __________ ____ ____ {' afe1 '}{'是的'}3 3{‘egh3}南{‘不’}7 7{‘wth4}{'是的'}3 3{‘atn2} 23{‘不’}23日23{‘__arg1}{'是的'}5 5{‘jre3} 34.6{'是的'}34.6 - 34.6{‘wen9} 234{'是的'}234 234{‘ple2}{‘不’}2 2{‘dbo8}{‘不’}5 5{‘oii4}{'是的'}5 245{‘wnk3}{'是的'}245 245{‘abk6} 563 {0 x0 char} 563 563{‘pnj5} 463{‘不’}463 463{‘wnn3}{‘不’}6 6{‘oks9} 23{'是的'}23日23{‘wba3}南{'是的'}南14{‘pkn4}{‘不’}2 2{'adw3'} 22 {'no'} 22 22 {'poj2'} NaN {'yes'} NaN {'bas8'} 23 {'no'} 23 {'gry5'} NaN {'yes'} NaN 21
standardizeMissing
的三个实例-99年
与南
.
创建一个新表,T2
,并用表中前几行的值替换缺失的值。fillmissing
提供多种填充缺失值的方法。
T2 = fillmissing (T)“以前”);disp (T2)
A B C D E ________ ____ _______ ____ ____ {' afe1 '}{'是的'}3 3{‘egh3} 3{‘不’}7 7{‘wth4}{'是的'}3 3{‘atn2} 23{‘不’}23日23{‘__arg1}{'是的'}5 5{‘jre3} 34.6{'是的'}34.6 - 34.6{‘wen9} 234{'是的'}234 234{‘ple2}{‘不’}2 2{‘dbo8}{‘不’}5 5{‘oii4}{'是的'}5 245{‘wnk3}{'是的'}245 245{‘abk6} 563{'是的'}563 563{‘pnj5} 463{‘不’}463 463{‘wnn3}{‘不’}6 6{‘oks9} 23{'是的'}23日23{‘wba3} 23{'是的'}23 14{‘pkn4}{‘不’}2 2{‘adw3} 22{‘不’}22 22{'poj2'} 22 {'yes'} 22 22 {'bas8'} 23 {'no' } 23 23 {'gry5'} 23 {'yes'} 23 21
删除缺少值的行
创建一个新表,T3
,它只包含来自的行T
没有缺失值。T3
只有16行。
T3 = rmmissing (T);disp (T3)
A B C D E ________ ____ _______ ____ ____ {' afe1 '}{'是的'}3 3{‘wth4}{'是的'}3 3{‘atn2} 23{‘不’}23日23{‘__arg1}{'是的'}5 5{‘jre3} 34.6{'是的'}34.6 - 34.6{‘wen9} 234{'是的'}234 234{‘ple2}{‘不’}2 2{‘dbo8}{‘不’}5 5{‘oii4}{'是的'}5 245{‘wnk3}{'是的'}245 245{‘pnj5} 463{‘不’}463 463{‘wnn3}{‘不’}6 6{‘oks9} 23{'是的'}23日23{‘pkn4}{‘不’}2 2{‘adw3} 22{‘不’}22 22{‘bas8} 23{‘不’}23日23
T3
包含16行和5个变量。
组织数据
的行排序T3
按降序排列C
,然后按一个
.
T3 = sortrows (T2, {“C”,“一个”},{“下”,“提升”});disp (T3)
A B C D E ________ ____ _______ ____ ____ {' abk6} 563{'是的'}563 563{‘afe1}{'是的'}3 3{‘__arg1}{'是的'}5 5{‘gry5} 23{'是的'}23 21 34.6{‘jre3}{'是的'}34.6 - 34.6{‘oii4}{'是的'}5 5{‘oks9} 23{'是的'}23日23{‘poj2} 22{'是的'}22 22{‘wba3} 23{'是的'}23 234{‘wen9}{'是的'}234 234{‘wnk3} 245{'是的'}245 245{‘wth4}{'是的'}3 3{‘adw3} 22{‘不’}22 22{‘atn2} 23{‘不’}23日23{‘bas8} 23{‘不’}23日23日{‘dbo8}{‘不’}5 5{‘egh3} 3{‘不’}7 7{‘pkn4} 2{‘不’}2 2{‘ple2}{‘不’}2 463{‘pnj5}{‘不’}463 463{‘wnn3}{‘不’}6 6
在C
,行按“是的”
,紧随其后的是“不”
.然后在一个
,行是按字母顺序排列的。
重新排列表格以便一个
而且C
是紧挨着的。
T3 = T3 (:, {“一个”,“C”,“B”,' D ',“E”});disp (T3)
一个C B D E ________ _______ ____ ____ ____ {' abk6’}{'是的'}563 563 563{‘afe1}{'是的'}3 3 3{‘__arg1}{'是的'}5 5 5{‘gry5}{'是的'}23日23日21{‘jre3}{'是的'}34.6 34.6 34.6{‘oii4}{'是的'}5 5 5{‘oks9}{'是的'}23 23日23{‘poj2}{'是的'}22 22 22{‘wba3}{'是的'}23日23日14{‘wen9}{'是的'}234 234 234{‘wnk3}{'是的'}245 245 245{‘wth4}{'是的'}3 3 3{‘adw3}{‘不’}22 22 22{‘atn2}{‘不’}23 23日23{‘bas8}{‘不’}23 23日23{‘dbo8}{‘不’}5 5 5{‘egh3}{‘不’}3 7 7{‘pkn4}{‘不’}22 2{‘ple2}{‘不’}2 2 2{‘pnj5}{‘不’}463 463 463{‘wnn3}{‘不’}6 6 6
另请参阅
readtable
|总结
|ismissing
|sortrows
|standardizeMissing
|rmmissing
|fillmissing