等宽文本文件的导入选项对象 您所在的位置:网站首页 matlab字段名称无效 等宽文本文件的导入选项对象

等宽文本文件的导入选项对象

2024-02-19 23:38| 来源: 网络整理| 查看: 265

加载并预览等宽文本文件

加载文件 fixed_width_patients_subset_messy.txt 并在文本编辑器中预览其内容。屏幕截图如下所示。屏幕截图显示该文件包含:

空行 - 第 7 行、第 12 行和第 13 行

附加列 - 第 8 列

缺失数据 - 第 1 行、第 4 行、第 9 行和第 11 行

不完整字段 - 最后 3 行

filename = 'fixed_width_patients_subset_messy.txt';

检查并捕获等宽文件的属性

等宽文本文件包含按开始位置、变量数目、变量名称和变量宽度组织的表格数据。可以捕获这些属性以及要为变量使用的数据类型。

DataStartLine = 2; NumVariables = 7; VariableNames = {'LastName','Gender','Age','Location','Height',... 'Weight','Smoker'}; VariableWidths = [ 10, 7, 4, 26, 7, ... 7, 7 ] ; DataType = {'char','categorical','double','char','double',... 'double','logical'};

初始化 FixedWidthImportOptions 对象并设置变量属性

初始化一个 FixedWidthImportOptions 对象并配置其属性,以便与数据的属性相匹配。

opts = fixedWidthImportOptions('NumVariables',NumVariables,... 'DataLines',DataStartLine,... 'VariableNames',VariableNames,... 'VariableWidths',VariableWidths,... 'VariableTypes',DataType);

设置 EmptyLinesRule、 Missing Rule 和 ExtraColumnsRule

通过将 EmptyLineRule 设置为 'read',读取数据中的空行。接下来,通过将 MissingRule 设置为 'fill',用预定义的值填充缺失实例。最后,要在导入过程中忽略多余列,请将 ExtraColumnsRule 设置为 'ignore'。有关这些属性及其值的详细信息,请参阅有关 FixedWidthImportOptions 的文档。

opts.EmptyLineRule = 'read'; opts.MissingRule = 'fill'; opts.ExtraColumnsRule ='ignore';

设置 PartialFieldRule

如果导入函数在遍历完整个变量宽度之前遇到行结束字符,就会出现不完整字段。例如,在此预览中,fixed_width_patients_subset_messy.txt 文件的最后三行就属于这种情况。这里,在最后一列的最后一行中,在该字段的头两个位置之后、在到达完整的变量宽度(三个位置)之前,出现了行结束字符。

出现这种不完整字段有时可能意味着出现错误。因此,可以使用 PartialFieldRule 决定如何处理这些数据。要保留不完整字段数据并将其转换为正确的数据类型,请将 PartialFieldRule 设置为 'keep'。有关 PartialFieldRule 的详细信息,请参阅有关 FixedWidthImportOptions 的文档。

opts.PartialFieldRule = 'keep';

导入表

使用 readtable 函数和 FixedWidthImportOptions 对象导入表并预览数据。

T = readtable(filename,opts)T=15×7 table LastName Gender Age Location Height Weight Smoker ____________ ___________ ___ _____________________________ ______ ______ ______ {'Smith' } Male 38 {'County General Hospital' } 71 176 true {'Johnson' } Male 43 {'VA Hospital' } 69 163 false {'Williams'} Female 38 {'St. Mary's Medical Center'} NaN NaN false {'Jones' } Female 40 {'VA Hospital' } 67 133 false {'Brown' } Female 49 {'County General Hospital' } 64 119 false {0×0 char } NaN {0×0 char } NaN NaN false {'Wilson' } Male 40 {'VA Hospital' } 68 180 false {'Moore' } Male 28 {'St. Mary's Medical Center'} NaN 183 false {'Taylor' } Female 31 {'County General Hospital' } 66 132 false {'Anderson'} Female 45 {'County General Hospital' } 68 NaN false {0×0 char } NaN {0×0 char } NaN NaN false {0×0 char } NaN {0×0 char } NaN NaN false {'White' } Male 39 {'VA Hospital' } 72 2 false {'Harris' } Female 36 {'St. Mary's Medical Center'} 65 12 false {'Martin' } Male 48 {'VA Hospital' } 71 181 true


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有