fixedWidthImportOptions

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

Описание

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

Создание

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

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

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

    opts = detectImportOptions(filename)

Описание

пример

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

пример

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

пример

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

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

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

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

Свойства

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

Variable Properties

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

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

Чтобы поддержать недопустимые идентификаторы MATLAB как, имена переменных, такие как имена переменных, содержащие пробелы и символы non-ASCII, устанавливают значение VariableNamingRule к 'preserve'.

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

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

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

Отметьте, чтобы сохранить имена переменных в виде разделенной запятой пары, состоящей из VariableNamingRule и любой 'modify' или 'preserve'.

  • 'modify' — Преобразуйте недопустимые имена переменных (как определено isvarname функция) к допустимым идентификаторам MATLAB.

  • 'preserve' — Сохраните имена переменных, которые не являются допустимыми идентификаторами MATLAB, такими как имена переменных, которые включают символы non-ASCII и пробелы.

Начиная в R2019b, имена переменных и имена строки могут включать любые символы, включая символы non-ASCII и пробелы. Кроме того, они могут начать с любых символов, не только обозначает буквами. Переменная и имена строки не должны быть допустимыми идентификаторами MATLAB (как определено isvarname функция. Чтобы сохранить эти имена переменных и имена строки, установите значение VariableNamingRule к 'preserve'.

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

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

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

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

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

Пример: opts = setvartype(opts,'Height',{'double'}) изменяет тип данных переменной Height к double.

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

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

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

Чтобы поддержать недопустимые идентификаторы MATLAB как, имена переменных, такие как имена переменных, содержащие пробелы и символы non-ASCII, устанавливают значение VariableNamingRule к 'preserve'.

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

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

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

Типы данных: uint16 | uint32 | uint64 | char | string | cell

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

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

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

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

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

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

Пример: opts = setvaropts(opts,'Height','FillValue',0) устанавливает FillValue свойство для переменной Height к 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, и конец файла.

Типы данных: single | double | uint8 | uint16 | uint32 | uint64

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

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

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

Типы данных: single | double | uint8 | uint16 | uint32 | uint64

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

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

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

Типы данных: single | double | uint8 | uint16 | uint32 | uint64

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

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

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

Типы данных: single | double | uint8 | uint16 | uint32 | uint64

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

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

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

Типы данных: single | double | uint8 | uint16 | uint32 | uint64

Delimited Text Properties

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

Пример: 'Whitespace',' _'

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

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

Пример: 'LineEnding','\n'

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

Пример: 'LineEnding',{'\b',':'}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

'fill'

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

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

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

Пример: opts.PartialFieldRule = 'keep';

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

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

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

Пример: opts.EmptyLineRule = 'skip';

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

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

MissingRule Поведение
'fill'

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

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

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

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

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

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

ImportErrorRule Поведение
'fill'

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

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

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

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

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

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

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

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

ПРИМЕЧАНИЕ: дополнительные столбцы импортируются как текст с данными typechar.

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

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

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

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

Примеры

свернуть все

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

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

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

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

Настройте EmptyLinesRuleMissingRule , и 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  }    <undefined>    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  }    <undefined>    NaN    {0×0 char                   }     NaN       NaN      false 
    {0×0 char  }    <undefined>    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  

Советы

  • Введенный в:

    • R2017a FixedWidthImportOptions объект

    • R2018b — fixedWidthImportOptions функция

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

|