清理表中杂乱和缺失的数据

这个示例展示了如何查找、清理和删除缺少数据的表行。

加载示例数据

从逗号分隔的文本文件加载示例数据,messy.csv。文件包含许多不同的缺失数据指示器:

  • 空字符向量(")

  • 句点(.)

  • NA

  • -99年

属性指定要作为空值处理的字符向量“TreatAsEmpty”参数的名称-值对readtable函数。(使用disp函数显示所有21行,即使在将此示例作为实时脚本运行时也是如此。)

T = readtable (“messy.csv”,“TreatAsEmpty”,{“。”,“NA”});disp (T)
A B C D E ________ __________上_____ {‘afe1}{'是的'}3 3 {‘egh3}南{‘不’}7 7 {‘wth4}{'是的'}3 3 {‘atn2} 23{‘不’}23日23 {‘__arg1}{'是的'}5 5 34.6 {“jre3”}{'是的'}34.6 - 34.6 {‘wen9} 234{'是的'}234 234 {‘ple2}{‘不’}2 2 {‘dbo8}{‘不’}5 5 {‘oii4}{'是的'}5 245 {‘wnk3}{'是的'}245 245 {‘abk6} {0 x0 char} 563 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个变量的表。“TreatAsEmpty”仅应用于文件中的数值列,不能处理指定为文本的数值,例如“-99”

总结表

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

总结(T)
变量:A: 21x1字符向量的单元数组B: 21x1双值:Min -99中位数14 Max 563 C: 21x1字符向量的单元数组D: 21x1双值:Min -99中位数7 Max 563 E: 21x1双值:Min -99中位数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 34.6 {“jre3”}{'是的'}34.6 - 34.6 {‘wen9} 234{'是的'}234 234 {‘ple2}{‘不’}2 2 {‘dbo8}{‘不’}5 5 {‘oii4}{'是的'}5 245 {‘wnk3}{'是的'}245 245 {‘abk6} {0 x0 char} 563 563 563 {‘pnj5} 463{‘不’}463 463 {‘wnn3}{‘不’}6 6 {‘oks9} 23{'是的'}23日23 {‘wba3}南{'是的'}南14 {‘pkn4}{‘不’}2 2{'adw3'} 22 {'no'} 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}{‘不’}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 34.6 {“jre3”}{'是的'}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

另请参阅

||||||

相关的话题