Как правило, вы можете таблицы импорта с помощью функции readtable
. Однако иногда импортирование табличных данных требует дополнительного управления процессом импорта. Например, вы можете хотеть выбрать переменные, чтобы импортировать или обработать строки с отсутствующими или ошибочными данными. Чтобы управлять процессом импорта, можно создать объект настроек импорта. Объект имеет свойства, которые можно настроить на основе потребностей импорта.
Чтобы создать объект настроек импорта для набора выборочных данных, airlinesmall.csv
, используют функцию detectImportOptions
. Функция detectImportOptions
создает объект DelimitedTextImportOptions
для этого текстового файла. Для полного списка свойств объекта настроек импорта смотрите страницу с описанием detectImportOptions
.
opts = detectImportOptions('airlinesmall.csv');
Объект настроек импорта имеет свойства, которые можно настроить, чтобы управлять процессом импорта. Некоторые свойства применяются к целой таблице, в то время как другие обращаются к определенным переменным. Свойства, которые влияют на целую таблицу, включают правила справиться с порождением ошибки или недостающими данными. Например, удалите строки с данными, которые вызывают ошибки импорта путем установки ImportErrorRule
на 'omitrow'
. Замените отсутствующие значения путем установки MissingRule
на 'fill'
. Значение свойства FillValue
определяет, какое значение заменяет отсутствующие значения. Например, можно заменить отсутствующие значения на NaN
.
opts.ImportErrorRule = 'omitrow'; opts.MissingRule = 'fill';
Чтобы добраться и установить опции для определенных переменных используют getvaropts
, setvartype
и функции setvaropts
. Например, просмотрите текущие опции для переменных под названием FlightNum
, Origin
, Dest
и ArrDelay
, с помощью функции getvaropts
.
getvaropts(opts,{'FlightNum','Origin','Dest','ArrDelay'});
Измените типы данных для переменных с помощью функции setvartype
:
Поскольку значения в переменной FlightNum
являются идентификаторами для рейса и не численных значений, изменяют его тип данных на char
.
Поскольку переменные Origin
и Dest
определяют конечное множество повторяющихся текстовых значений, изменяют их тип данных на categorical
.
opts = setvartype(opts,{'FlightNum','Origin','Dest','ArrDelay'},... {'char','categorical','categorical','single'});
Измените другие свойства с помощью функции setvaropts
:
Для переменной FlightNum
удалите любые ведущие пробелы из текста путем установки свойства WhiteSpaceRule
на trimleading
.
Для переменной ArrDelay
замените поля, содержащие 0
или NA
со значением, заданным в свойстве FillValue
путем установки свойства TreatAsMissing
.
opts = setvaropts(opts,'FlightNum','WhitespaceRule','trimleading'); opts = setvaropts(opts,'ArrDelay','TreatAsMissing',{'0','NA'});
Задайте переменные, чтобы получить, импортировать их использующий readtable
и отобразить первые строки 8
таблицы.
opts.SelectedVariableNames = {'FlightNum','Origin','Dest','ArrDelay'}; T = readtable('airlinesmall.csv',opts); T(1:8,:)
ans=8×4 table
FlightNum Origin Dest ArrDelay
_________ ______ ____ ________
'1503' LAX SJC 8
'1550' SJC BUR 8
'1589' SAN SMF 21
'1655' BUR SJC 13
'1702' SMF LAX 4
'1729' LAX SJC 59
'1763' SAN SFO 3
'1800' SEA LAX 11
DelimitedTextImportOptions
| SpreadsheetImportOptions
| detectImportOptions
| getvaropts
| readtable
| setvaropts
| setvartype