主要内容

清理混乱和缺失的数据表

此示例显示如何使用缺少数据查找,清除和删除表行。

加载样本数据

从逗号分隔的文本文件加载样本数据,messy.csv.该文件包含许多不同的缺失数据指标:

  • 空字符矢量('')

  • 句点(.)

  • NA

  • -99

要指定要作为空值处理的字符向量,请使用'trysasempty'名称 - 值对参数与readtable功能。(使用disp函数要显示所有21行,即使将此示例运行为实时脚本。)

T = readtable (“messy.csv”'trysasempty',{'。'“NA”});DISP(T)
一种B.CD.E.________ ____ __________ ____ ____ {'afe1'} 3 {'yes' } 3 3 {'egh3'} NaN {'no' } 7 7 {'wth4'} 3 {'yes' } 3 3 {'atn2'} 23 {'no' } 23 23 {'arg1'} 5 {'yes' } 5 5 {'jre3'} 34.6 {'yes' } 34.6 34.6 {'wen9'} 234 {'yes' } 234 234 {'ple2'} 2 {'no' } 2 2 {'dbo8'} 5 {'no' } 5 5 {'oii4'} 5 {'yes' } 5 5 {'wnk3'} 245 {'yes' } 245 245 {'abk6'} 563 {0x0 char} 563 563 {'pnj5'} 463 {'no' } 463 463 {'wnn3'} 6 {'no' } 6 6 {'oks9'} 23 {'yes' } 23 23 {'wba3'} NaN {'yes' } NaN 14 {'pkn4'} 2 {'no' } 2 2 {'adw3'} 22 {'no' } 22 22 {'poj2'} -99 {'yes' } -99 -99 {'bas8'} 23 {'no' } 23 23 {'gry5'} NaN {'yes' } NaN 21

T.是一个包含21行和5个变量的表。'trysasempty'仅适用于文件中的数字列,无法处理指定为文本的数值,例如'-99'

总结表格

属性创建表摘要,查看每个变量的数据类型、描述、单位和其他描述性统计信息概括功能。

摘要(t)
变量:A: 21x1 cell array of character vectors B: 21x1 double Values: Min -99 Median 14 Max 563 NumMissing 3 C: 21x1 cell array of character vectors D: 21x1 double Values: Min -99 Median 7 Max 563 NumMissing 2 E: 21x1 double Values: Min -99 Median 14 Max 563

从文件导入数据时,默认值为readtable以读取非数字元素的任何变量作为字符向量的小区数组。

查找缺失值的行

从表中显示行的子集,T.,至少有一个缺失的价值。

tf = ismissing(t,{'''。'“NA”南-99});rowsWithMissing = T(任何(TF, 2):);disp (rowsWithMissing)
一种B.CD.E.________ ___ __________ ___ ___ {'egh3'} NaN {'no' } 7 7 {'abk6'} 563 {0x0 char} 563 563 {'wba3'} NaN {'yes' } NaN 14 {'poj2'} -99 {'yes' } -99 -99 {'gry5'} NaN {'yes' } NaN 21

readtable更换'。'“NA”在数字变量中,B.D.,E.

替换缺失的值指示灯

清理数据,以便由代码指示缺失的值-99具有标准MATLAB®数字缺失值指示灯,

T = standardizeMissing (T, -99);DISP(T)
一种B.CD.E.________ ____ __________ ____ ____ {'afe1'} 3 {'yes' } 3 3 {'egh3'} NaN {'no' } 7 7 {'wth4'} 3 {'yes' } 3 3 {'atn2'} 23 {'no' } 23 23 {'arg1'} 5 {'yes' } 5 5 {'jre3'} 34.6 {'yes' } 34.6 34.6 {'wen9'} 234 {'yes' } 234 234 {'ple2'} 2 {'no' } 2 2 {'dbo8'} 5 {'no' } 5 5 {'oii4'} 5 {'yes' } 5 5 {'wnk3'} 245 {'yes' } 245 245 {'abk6'} 563 {0x0 char} 563 563 {'pnj5'} 463 {'no' } 463 463 {'wnn3'} 6 {'no' } 6 6 {'oks9'} 23 {'yes' } 23 23 {'wba3'} NaN {'yes' } NaN 14 {'pkn4'} 2 {'no' } 2 2 {'adw3'} 22 {'no' } 22 22 {'poj2'} NaN {'yes' } NaN NaN {'bas8'} 23 {'no' } 23 23 {'gry5'} NaN {'yes' } NaN 21

标准造理取代三个实例-99

创建一个新表,T2.,并用表中前一行中的值替换缺失的值。填充提供许多方法来填充缺失的值。

T2 =填充(T,'以前的');DISP(T2)
一种B.CD.E.________ ____ _______ ____ ____ {'afe1'} 3 {'yes'} 3 3 {'egh3'} 3 {'no' } 7 7 {'wth4'} 3 {'yes'} 3 3 {'atn2'} 23 {'no' } 23 23 {'arg1'} 5 {'yes'} 5 5 {'jre3'} 34.6 {'yes'} 34.6 34.6 {'wen9'} 234 {'yes'} 234 234 {'ple2'} 2 {'no' } 2 2 {'dbo8'} 5 {'no' } 5 5 {'oii4'} 5 {'yes'} 5 5 {'wnk3'} 245 {'yes'} 245 245 {'abk6'} 563 {'yes'} 563 563 {'pnj5'} 463 {'no' } 463 463 {'wnn3'} 6 {'no' } 6 6 {'oks9'} 23 {'yes'} 23 23 {'wba3'} 23 {'yes'} 23 14 {'pkn4'} 2 {'no' } 2 2 {'adw3'} 22 {'no' } 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 3{‘adw3} 22{‘不’}22 22{‘atn2} 23{‘不’}23日23日{‘bas8} 23{‘不’}23日23{‘dbo8}{‘不’}5 5{‘egh3} 3{‘不’}7 7{‘pkn4}{‘不’}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'} {'no' } 22 22 22 {'atn2'} {'no' } 23 23 23 {'bas8'} {'no' } 23 23 23 {'dbo8'} {'no' } 5 5 5 {'egh3'} {'no' } 3 7 7 {'pkn4'} {'no' } 2 2 2 {'ple2'} {'no' } 2 2 2 {'pnj5'} {'no' } 463 463 463 {'wnn3'} {'no' } 6 6 6

也可以看看

||||||

相关的话题