dataset

Класс: набор данных

(Не Рекомендуемый) Создать массив набора данных

The dataset тип данных не рекомендуется. Для работы с неоднородными данными используйте MATLAB® table вместо этого тип данных. См. MATLAB table документация для получения дополнительной информации.

Синтаксис

A = dataset(varspec,'ParamName',Value)
A = dataset('File',filename,'ParamName',Value)
A = dataset('XLSFile',filename,'ParamName',Value)
A = dataset('XPTFile',xptfilename,'ParamName',Value)

Описание

A = dataset(varspec,'ParamName',Value) создает массив набора данных A использование метода входа переменной рабочей области varspec и одну или несколько необязательных пар «имя/значение» (см. раздел «Имя параметра значения»).

Метод входа varspec может быть одним или несколькими из следующих:

  • VAR - переменная рабочей области. dataset использует имя рабочей области для имени переменной в A. Чтобы включать несколько переменных, задайте VAR_1, VAR_2..., VAR_N. Переменные могут быть массивами любого размера, но все переменные должны иметь одинаковое число строк. VAR может также быть выражением. В этом случае dataset автоматически создает имя по умолчанию.

  • {VAR, name} - переменная рабочей области, VAR и имя переменной, name . dataset использует name как имя переменной. Чтобы включать несколько переменных и имен, задайте {VAR_1, name_1}, {VAR_2, name_2}..., {VAR_N, name_N}.

  • {VAR, name_1,..., name_m} - m переменная рабочей области, VAR. dataset использует имена name_1, ..., name_m как имена переменных. Вы должны включать имя для каждого столбца в VAR. Каждый столбец становится отдельной переменной в A.

Можно объединить эти методы входа, чтобы включать столько переменных и имен, сколько необходимо. Имена должны быть допустимыми, уникальными идентификаторами MATLAB. Например, входные комбинации, см. Примеры. Для необязательных пар имя/значение смотрите Входы.

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

Примечание

Массивы набора данных могут содержать встроенные типы или объекты массива как переменные. Объекты массив должны реализовать каждый из следующих:

  • Стандартная круглая скобка MATLAB вида var(i,...), где i является числовым или логическим вектором, соответствующим строкам переменной

  • A size метод с dim аргумент

  • A vertcat метод

A = dataset('File',filename,'ParamName',Value) создает массив набора данных A из столбцоориентированных данных в текстовом файле, заданном filename. Переменные в A имеют тип double если данные в соответствующем столбце файла, после заголовка столбца, полностью числовые; в противном случае переменные в A являются массивами ячеек векторов символов. dataset преобразует пустые поля в либо NaN (для числовой переменной) или пустого символьного вектора (для символьной переменной). dataset игнорирует незначительное пустое пространство в файле. Вы не можете задать как переменную файла, так и переменные рабочей области как вход. Для получения дополнительной информации см. пары имя/значение».

A = dataset('XLSFile',filename,'ParamName',Value) создает массив набора данных A из ориентированных на столбцы данных в Excel® электронная таблица, заданная filename. Переменные в A имеют тип double если данные в соответствующем столбце электронной таблицы, следующие за заголовком столбца, являются полностью числовыми; в противном случае переменные в A являются массивами ячеек векторов символов. Для получения дополнительной информации см. пары имя/значение».

A = dataset('XPTFile',xptfilename,'ParamName',Value) создает массив набора данных из SAS® Файл формата XPORT. Имена переменных из файла формата XPORT сохраняются. Типы числовых данных в файле формата XPORT сохраняются, но все другие типы данных преобразуются в массивы ячеек векторов символов. Формат XPORT позволяет использовать 28 отсутствующих типов данных. dataset представляет их в файле буквой верхнего регистра, '.' или '_'. dataset преобразует все отсутствующие данные в NaN значения в A. Для получения дополнительной информации см. пары имя/значение».

Пары имя/значение параметра

Задайте одну или несколько из следующих пар имя/значение при построении набора данных:

VarNames

Массив строковых массивов или ячеек {name_1,...,name_m} именование m переменные в A с указанными именами переменных. Имена должны быть допустимыми, уникальными идентификаторами MATLAB. Количество имен должно равняться количеству переменных в A. Вы не можете использовать VarNames параметр, если вы задаете имена для отдельных переменных, используя {VAR,name} пар. Чтобы задать VarNames при использовании файла в качестве входов задайте ReadVarNames на false.

ObsNames

Массив строковых массивов или ячеек {name_1,...,name_n} именование n наблюдения в A с заданными именами наблюдений. Имена не должны быть допустимыми идентификаторами MATLAB, но должны быть уникальными. Количество имен должно равняться количеству наблюдений (строк) в A. Чтобы задать ObsNames при использовании файла в качестве входов задайте ReadObsNames на false.

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

Delimiter

Вектор символов или строковый скаляр, указывающий символ, разделяющий столбцы в файле. Значения:

  • '\t' (вкладка, значение по умолчанию, когда нет format задан)

  • ' ' (пространство, значение по умолчанию, когда a format задан)

  • ',' (запятая)

  • ';' (точка с запятой)

  • '|' (бар)

Format

Форматированный вектор символов или строковый скаляр, как принято textscan. dataset читает файл используя textscan, и создает переменные в A согласно спецификаторам преобразования в вектор символов формата или строковом скаляре. Вы также можете предоставить любые пары имя/значение, принятые textscan. Использование Format параметр намного быстрее для больших файлов. Если ReadObsNames является true, затем format должен включать спецификатор формата для первого столбца файла.

HeaderLines

Числовое значение, указывающее количество линий, которые нужно пропустить в начале файла.

По умолчанию: 0

TreatAsEmpty

Задает символы, которые будут рассматриваться как пустой символьный вектор в числовом столбце. Значения могут быть символьным массивом, строковыми массивами или массивом ячеек из векторов символов. Параметр применяется только к числовым столбцам в файле; dataset не принимает числовые литералы, такие как '-99'.

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

ReadVarNames

Логическое значение, указывающее, является ли (true) или нет (false), чтобы считать имена переменных из первой строки файла. Значение по умолчанию является true. Если ReadVarNames является true, имена переменных в заголовках столбцов файла или области значений (при использовании электронной таблицы Excel) не могут быть пустыми.

ReadObsNames

Логическое значение, указывающее, является ли (true) или нет (false) для чтения имен наблюдений из первого столбца файла или области значений (при использовании электронной таблицы Excel). Значение по умолчанию является false. Если ReadObsNames и ReadVarNames являются ли оба true, dataset сохраняет заголовок первого столбца в файле или области значений в качестве имени первой размерности в A.Properties.DimNames.

При чтении с XPT формат файла, ReadObsNames пара имя/значение параметра определяет, пытаться ли использовать первую переменную в файле в качестве имен наблюдений. Задайте как логическое значение (по умолчанию false). Если содержимое первой переменной не является допустимыми именами наблюдений, то dataset считывает переменную в переменную массива набора данных и не устанавливает имена наблюдений.

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

Sheet

А положительная скалярная величина значение типа double номер листа или имя листа с кавычками.

Range

Вектор символов или строковый скаляр вида 'C1:C2' где C1 и C2 - имена камер в противоположных углах прямоугольной области, которые будут считываться, как для xlsread. По умолчанию прямоугольная область простирается до самого правого столбца, содержащего данные. Если электронная таблица содержит пустые столбцы между столбцами данных или если электронная таблица содержит рисунки или другую не табличную информацию, задайте область значений, который содержит только данные.

Примеры

Создайте массив набора данных из переменных рабочей области, включая имена наблюдений:

load cereal
cereal = dataset(Calories,Protein,Fat,Sodium,Fiber,Carbo,...
   Sugars,'ObsNames',Name)
cereal.Properties.VarDescription = Variables(4:10,2);

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

load cities
categories = cellstr(categories);
cities = dataset({ratings,categories{:}},...
   'ObsNames',cellstr(names))

Загрузка данных из текстового файла или файла электронной таблицы

patients = dataset('File','hospital.dat',...
   'Delimiter',',','ReadObsNames',true)
patients2 = dataset('XLSFile','hospital.xls',...
   'ReadObsNames',true)
  1. Загрузите данные о пациентах из файла CSV hospital.dat и храните информацию в dataset массив с именами наблюдений, заданными первым столбцом в данных (идентификация пациента):

    patients = dataset('file','hospital.dat', ...
                 'format','%s%s%s%f%f%f%f%f%f%f%f%f', ...
                 'Delimiter',',','ReadObsNames',true); 
    

    Можно также загрузить данные без указания формата. dataset автоматически создает dataset переменные, которые являются double массивы или массивы ячеек векторов символов зависимости от содержимого файла:

    patients = dataset('file','hospital.dat',...
                       'delimiter',',',...
                       'ReadObsNames',true);

  2. Сделайте переменную с значением {0,1} smoke номинальный и измените метки на 'No' и 'Yes':

    patients.smoke = nominal(patients.smoke,{'No','Yes'});
    
  3. Добавьте новые уровни к smoke как заполнители для более подробных историй курильщиков:

    patients.smoke = addlevels(patients.smoke,...
                     {'0-5 Years','5-10 Years','LongTerm'});
    
  4. Предположим, что некурящие никогда не курили, перезабыли 'No' уровень:

    patients.smoke = setlabels(patients.smoke,'Never','No');
    
  5. Удалите недифференцированную 'Yes' уровень от smoke:

    patients.smoke = droplevels(patients.smoke,'Yes');
    
    Warning: OLDLEVELS contains categorical levels that 
    were present in A, caused some array elements to have 
    undefined levels.

    Обратите внимание, что у курильщиков теперь неопределенный уровень.

  6. Установите каждый курильщик на один из новых уровней по имени наблюдения:

    patients.smoke('YPL-320') = '5-10 Years';
Введенный в R2007a