fixedWidthImportOptions

Настройки импорта возражают для текстовых файлов фиксированной ширины

Описание

Объект FixedWidthImportOptions позволяет вам задать, как MATLAB® импортирует табличные данные фиксированной ширины от текстовых файлов. Объект содержит свойства, которые управляют процессом импорта данных, включая обработку ошибок и недостающих данных.

Создание

Можно создать объект FixedWidthImportOptions с помощью любого функция fixedWidthImportOptions (описанный здесь) или функция detectImportOptions:

  • Используйте fixedWidthImportOptions, чтобы задать свойства импорта на основе ваших требований импорта.

  • Используйте detectImportOptions, чтобы обнаружить и заполнить свойства импорта на основе содержимого текстового файла фиксированной ширины, заданного в filename.

    opts = detectImportOptions(filename)

Синтаксис

opts = fixedWidthImportOptions
opts = fixedWidthImportOptions('NumVariables',numVars)
opts = fixedWidthImportOptions(___,Name,Value)

Описание

пример

opts = fixedWidthImportOptions создает объект FixedWidthImportOptions с одной переменной.

пример

opts = fixedWidthImportOptions('NumVariables',numVars) создает объект с количеством переменных, заданных в numVars.

Чтобы импортировать данные с помощью этого пользовательского объекта FixedWidthImportOptions, необходимо сначала настроить эти свойства: VariableNames, VariableWidths, VariableTypes и DataLine.

пример

opts = fixedWidthImportOptions(___,Name,Value) задает дополнительные свойства для объекта FixedWidthImportOptions с помощью одного или нескольких аргументов в виде пар "имя-значение".

Входные параметры

развернуть все

Количество переменных, заданных как положительное скалярное целое число.

Свойства

развернуть все

Variable Properties

Имена переменных, заданные как массив ячеек из символьных векторов или массив строк. Свойство VariableNames содержит имена, чтобы использовать при импорте переменных.

Если данные содержат переменные N, но никакие имена переменных не обнаруживаются, то свойство VariableNames содержит {'Var1','Var2',...,'VarN'}.

Пример: opts. VariableNames возвращает текущие (обнаруженные) имена переменных.

Пример: opts. VariableNames (3) = {'Высота'} изменяет название третьей переменной к Высоте.

Типы данных: char | представляет в виде строки | ячейка

Ширина поля переменных, заданных как вектор положительных целочисленных значений. Каждое положительное целое число в векторе соответствует количеству символов в поле, которое составляет переменную. Свойство VariableWidths содержит запись, соответствующую каждой переменной, заданной в свойстве VariableNames.

Пример: opts. VariableWidths возвращает вектор переменных ширин, где каждый элемент соответствует ширине переменной в данных.

Переменные типы данных, заданные как массив ячеек из символьных векторов или массив строк. Свойство VariableTypes определяет типы данных использовать при импорте переменных. При присвоении новых значений задайте VariableTypes как массив ячеек допустимых имен типов данных.

Чтобы обновить свойство VariableTypes, используйте функцию setvartype.

Пример: opts. VariableTypes возвращает текущие (обнаруженные) переменные типы данных.

Пример: opts = setvartype (opts, 'Высота', {'дважды'}) изменяет тип данных переменной Высоты, чтобы удвоиться.

Типы данных: ячейка | единственный | удваивается | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char | строка | категориальный | datetime

Подмножество переменных, чтобы импортировать, заданный как вектор символа, представляет в виде строки скаляр, массив ячеек из символьных векторов, массив строк или массив числовых индексов.

SelectedVariableNames должен быть подмножеством имен, содержавшихся в свойстве VariableNames. По умолчанию SelectedVariableNames содержит все имена переменных из свойства VariableNames, что означает, что все переменные импортируются.

Используйте свойство SelectedVariableNames импортировать только переменные интереса. Задайте подмножество переменных с помощью свойства SelectedVariableNames и используйте readtable, чтобы импортировать только то подмножество.

Пример: opts. SelectedVariableNames = {'Высота', 'LastName'} выбирает только две переменные, Высоту и LastName, для операции импорта.

Пример: opts. SelectedVariableNames = [1 5] выбирает только две переменные, первую переменную и пятую переменную, для операции импорта.

Пример: T = readtable (имя файла, opts) возвращает таблицу, содержащую только переменные, заданные в свойстве SelectedVariableNames объекта opts.

Типы данных: uint16 | uint32 | uint64 | char | представляет в виде строки | ячейка

Введите определенные переменные настройки импорта, возвращенные как массив переменных объектов настроек импорта. Массив содержит объект, соответствующий каждой переменной, заданной в свойстве VariableNames. Каждый объект в массиве содержит свойства, которые поддерживают импорт данных с определенным типом данных.

Параметры переменной поддерживают эти типы данных: числовой, текст, logical, datetime или categorical.

Чтобы запросить ток (или обнаруженный) опции для переменной, используйте функцию getvaropts.

Чтобы установить и настроить опции для переменной, используйте функцию setvaropts.

Пример: opts. VariableOptions возвращает набор объектов VariableImportOptions, одно соответствие каждой переменной в данных.

Пример: getvaropts (opts, 'Высота') возвращает объект VariableImportOptions для переменной Высоты.

Пример: opts = setvaropts (opts, 'Высота', 'FillValue', 0) устанавливает свойство FillValue для переменной Высоты к 0.

Location Properties

Местоположение данных, заданное как положительное скалярное целое число или N- by-2 массив положительных скалярных целых чисел. Задайте DataLines с помощью одной из следующих форм.

Задайте как

Описание

n

Задайте первую строку, которая содержит данные. Определение значения с помощью n устанавливает значение свойства DataLines к [n inf]. Функция импорта читает все строки между n и концом файла.

n должен быть положительным целым числом, больше, чем нуль.

[n1 n2]

Задайте область значений строки, которая содержит данные. n1 является первой строкой, которая содержит данные, и n2 является последней строкой, которая содержит данные.

Значения в массиве, [n1 n2] должен быть ненулевыми положительными целыми числами и n2, должны быть больше, чем n1.

[n1 n2; n3 n4;...]

Задайте несколько областей значений строки, чтобы считать с N- by-2 массив, содержащий N различные области значений строки.

Допустимый массив нескольких областей значений строки должен:

  • Задайте области значений строки в увеличивающемся порядке, который является первой областью значений строки, заданной в массиве, появляется в файле перед другими областями значений строки.

  • Содержите только неперекрывающиеся области значений строки.

При определении нескольких областей значений строки используйте Inf только при определении конца последней области значений строки в массиве. Например, [1 3; 5 6; 8 Inf].

Пример: opts. DataLines = 5 наборов свойство DataLines к значению [5 inf]. Считайте все строки данных, начинающих со строки 5 в конец.

Пример: opts. DataLines = [2 6] устанавливает свойство считать строки 2 - 6.

Пример: opts. DataLines = [1 3; 5 6; 8 inf] устанавливают свойство считать строки 1, 2, 3, 5, 6 и все строки между 8, и конец файла.

Типы данных: единственный | удваиваются | uint8 | uint16 | uint32 | uint64

Строка называет местоположение, заданное как положительное скалярное целое число. Свойство RowNamesColumn задает местоположение столбца, содержащего имена строки.

Если RowNamesColumn задан как 0, то не импортируйте имена строки. В противном случае импортируйте имена строки из заданного столбца.

Пример: opts. RowNamesColumn = 2;

Типы данных: единственный | удваиваются | uint8 | uint16 | uint32 | uint64

Местоположение имен переменных, заданное как положительное скалярное целое число. Свойство VariableNamesLine задает номер строки, где имена переменных расположены.

Если VariableNamesLine задан как 0, то не импортируйте имена переменных. В противном случае импортируйте имена переменных из заданной строки.

Пример: opts. VariableNamesLine = 6;

Типы данных: единственный | удваиваются | uint8 | uint16 | uint32 | uint64

Местоположение описания переменной, заданное как положительное скалярное целое число. Свойство VariableDescriptionsLine задает номер строки, где описания переменной расположены.

Если VariableDescriptionsLine задан как 0, то не импортируйте описания переменной. В противном случае импортируйте описания переменной из заданной строки.

Пример: opts. VariableDescriptionsLine = 7;

Типы данных: единственный | удваиваются | uint8 | uint16 | uint32 | uint64

Переменное модульное местоположение, заданное как положительное скалярное целое число. Свойство VariableUnitsLine задает номер строки, где переменные модули расположены.

Если VariableUnitsLine задан как 0, то не импортируйте переменные модули. В противном случае импортируйте переменные модули из заданной строки.

Пример: opts. VariableUnitsLine = 8;

Типы данных: единственный | удваиваются | uint8 | uint16 | uint32 | uint64

Delimited Text Properties

Символы, чтобы обработать как пробел, заданный как вектор символа или представить в виде строки скаляр, содержащий один или несколько символов.

Пример: '_'

Пример:'?!.',

Символы конца строки, заданные как вектор символа, представляют в виде строки скаляр, массив ячеек из символьных векторов или массив строк.

Пример: N

Пример: '\r\n'

Пример: B:'}

Типы данных: char | представляет в виде строки | ячейка

Стиль комментариев, заданных как вектор символа, представляет в виде строки скаляр, массив ячеек из символьных векторов или массив строк.

Например, чтобы проигнорировать текст после знака процента на той же строке, задайте CommentStyle как '%'.

Пример: {'/*'}

Типы данных: char | представляет в виде строки | ячейка

Схема кодировки символов, сопоставленная с файлом, заданным как пара, разделенная запятой, состоящая из 'Encoding' и 'system' или схемы кодирования стандартного символа, называет как одно из значений в этой таблице.

'Big5'

'ISO-8859-1'

'windows-847'

'Big5-HKSCS'

'ISO-8859-2'

'windows-949'

'CP949'

'ISO-8859-3'

'windows-1250'

'EUC-KR'

'ISO-8859-4'

'windows-1251'

'EUC-JP'

'ISO-8859-5'

'windows-1252'

'EUC-TW'

'ISO-8859-6'

'windows-1253'

'GB18030'

'ISO-8859-7'

'windows-1254'

'GB2312'

'ISO-8859-8'

'windows-1255'

'GBK'

'ISO-8859-9'

'windows-1256'

'IBM866'

'ISO-8859-11'

'windows-1257'

'KOI8-R'

'ISO-8859-13'

'windows-1258'

'KOI8-U'

'ISO-8859-15'

'US-ASCII'

 

'Macintosh'

'UTF-8'

 

'Shift_JIS'

 

Пример: 'система' использует кодирование системного значения по умолчанию.

Типы данных: char | string

Заменяющие правила

Процедура, чтобы обработать частичные поля в данных, заданных как одно из значений в этой таблице.

PartialFieldRule Поведение
'keep'

Сохраните частичные полевые данные и преобразуйте текст в соответствующий тип данных.

В некоторых случаях, когда функция импорта не может интерпретировать частичные данные, ошибка преобразования может произойти.

заливка

Замените недостающие данные на содержимое свойства FillValue.

Свойство FillValue задано в объекте VariableImportOptions импортируемой переменной. Для получения дополнительной информации о доступе к свойству FillValue смотрите getvaropts.

'omitrow'Не используйте строки, которые содержат частичные данные.
'omitvar'Не используйте переменные, которые содержат частичные данные.
'wrap'Начните читать следующую строку символов.
ошибкаОтобразите сообщение об ошибке и прервите операцию импорта.

Пример: opts. PartialFieldRule = 'сохраняют';

Типы данных: char | string

Процедура, чтобы обработать пустые строки в данных, заданных как 'skip', 'read' или 'error'. Функция импорта интерпретирует пробел как пустой.

EmptyLineRule Поведение
'skip'Пропустите пустые строки.
чтениеИмпортируйте пустые строки. Функция импорта анализирует пустую строку с помощью значений, заданных в VariableWidths, VariableOptions, MissingRule и других соответствующих свойствах, таких как Whitespace.
ошибкаОтобразите сообщение об ошибке и прервите операцию импорта.

Пример: opts. EmptyLineRule = 'пропуск';

Типы данных: char | string

Процедура, чтобы управлять недостающими данными, заданными как одно из значений в этой таблице.

MissingRule Поведение
заливка

Замените недостающие данные на содержимое свойства FillValue.

Свойство FillValue задано в объекте VariableImportOptions импортируемой переменной. Для получения дополнительной информации о доступе к свойству FillValue смотрите getvaropts.

ошибкаПрекратите импортировать и отобразите сообщение об ошибке, показывающее недостающую запись и поле.
'omitrow'Не используйте строки, которые содержат недостающие данные.
'omitvar'Не используйте переменные, которые содержат недостающие данные.

Пример: opts. MissingRule = 'omitrow'; uint32

Типы данных: char | string

Процедура, чтобы обработать ошибки импорта, заданные как одно из значений в этой таблице.

ImportErrorRule Поведение
заливка

Замените данные, где ошибка произошла с содержимым свойства FillValue.

Свойство FillValue задано в объекте VariableImportOptions импортируемой переменной. Для получения дополнительной информации о доступе к свойству FillValue смотрите getvaropts.

ошибкаПрекратите импортировать и отобразите сообщение об ошибке, показывающее вызывающую ошибку запись и поле.
'omitrow'Не используйте строки, где ошибки происходят.
'omitvar'Не используйте переменные, где ошибки происходят.

Пример: opts. ImportErrorRule = 'omitvar';

Типы данных: char | string

Процедура, чтобы обработать дополнительные столбцы в данных, заданных как одно из значений в этой таблице.

ExtraColumnsRule Поведение
'addvars'

Чтобы импортировать дополнительные столбцы, создайте новые переменные. Если существуют дополнительные столбцы N, то импортируют новые переменные как 'ExtraVar1', 'ExtraVar2',..., 'ExtraVarN'.

Примечание: Дополнительные столбцы импортируются как текст с данными typechar.

'ignore'Проигнорируйте дополнительные столбцы данных.
'wrap'Перенесите дополнительные столбцы данных к новым записям. Это действие не изменяет количество переменных.
ошибкаОтобразите сообщение об ошибке и прервите операцию импорта.

Типы данных: char | string

Функции объекта

getvaroptsПолучите переменные настройки импорта
setvaroptsУстановите переменные настройки импорта
setvartypeУстановите переменные типы данных
предварительный просмотрПредварительный просмотр восемь строк из файла с помощью настроек импорта

Примеры

свернуть все

Исследуйте файл форматированного текста фиксированной ширины, инициализируйте объект настроек импорта и используйте объект импортировать таблицу из текстового файла.

Загрузка и текстовый файл Фиксированной Ширины предварительного просмотра

Загрузите файл fixed_width_patients_subset_perfect.txt и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывает, что файл содержит отформатированные данные фиксированной ширины.

filename = fullfile(matlabroot,'examples','matlab','fixed_width_patients_subset_perfect.txt');

Examine and Extract Properties файла Фиксированной Ширины

Текстовому файлу фиксированной ширины организовали табличные данные стартовое местоположение, количество переменных, имен переменных и переменных ширин. Получите эти свойства и желаемый тип данных для переменных.

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 и сконфигурируйте его свойства совпадать со свойствами данных в fixed_width_patients_subset_perfect.txt .

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

Таблица импорта

Используйте readtable с объектом FixedWidthImportOptions импортировать таблицу.

T = readtable(filename,opts)
T=10×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'      64       131      false 
    'Brown'       Female    49     'County General Hospital'        64       119      false 
    'Miller'      Female    33     'VA Hospital'                    64       142      true  
    'Wilson'      Male      40     'VA Hospital'                    68       180      false 
    'Taylor'      Female    31     'County General Hospital'        66       132      false 
    'Thomas'      Female    42     'St. Mary's Medical Center'      66       137      false 
    'Jackson'     Male      25     'VA Hospital'                    71       174      false 
    'Clark'       Female    48     'VA Hospital'                    65       133      false 

Задайте объект настроек импорта импортировать грязные данные из файла форматированного текста фиксированной ширины. Сконфигурируйте объект обработать грязные данные и использовать его, чтобы импортировать таблицу.

Загрузка и текстовый файл Фиксированной Ширины предварительного просмотра

Загрузите файл fixed_width_patients_subset_messy.txt и предварительно просмотрите его содержимое в текстовом редакторе. Снимок экрана показывают ниже. Снимок экрана показывает, что файл содержит:

  • Пустые строки – Строки 7, 12, и 13

  • Дополнительный столбец – Столбец 8

  • Недостающие данные – Строки 1, 4, 9 и 11

  • Частичные поля – Длятся 3 строки

filename = fullfile(matlabroot,'examples','matlab','fixed_width_patients_subset_messy.txt');

Examine and Capture Properties файла Фиксированной Ширины

Текстовому файлу фиксированной ширины организовали табличные данные пристальное местоположение, количество переменных, имен переменных и переменных ширин. Получите эти свойства и тип данных, который вы хотите использовать для переменных.

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'};

Initialize FixedWidthImportOptions Object and Set Up Variable Properties

Инициализируйте объект FixedWidthImportOptions и сконфигурируйте его свойства совпадать со свойствами данных.

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

Настройте EmptyLinesRule, Missing Rule и ExtraColumnsRule

Считайте пустые строки в данных путем установки EmptyLineRule на 'read'. Затем, заполните недостающие экземпляры с предопределенными значениями путем установки MissingRule на 'fill'. Finally, чтобы проигнорировать дополнительный столбец во время импорта, установить ExtraColumnsRule на 'ignore'. Для получения дополнительной информации о свойствах и их значениях, см. документацию для FixedWidthImportOptions.

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

Настройте PartialFieldRule

Частичные поля происходят, когда функция импорта достигает символа конца строки, прежде чем полная переменная ширина будет пересечена. Например, в этом предварительном просмотре, последних трех строках из файла fixed_width_patients_subset_messy.txt 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 
    ''            <undefined>    NaN    ''                              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 
    ''            <undefined>    NaN    ''                              NaN       NaN      false 
    ''            <undefined>    NaN    ''                              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  

Смотрите также

|

Введенный в R2017a

Была ли эта тема полезной?