набор данных

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

Создайте массив набора данных

Тип данных 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 является числовым или логическим вектором, соответствующим строкам переменной

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

  • Метод 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 не задан),

  • ' ' (пробел, значение по умолчанию, когда 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