dataset

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

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

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Имя} — переменная рабочей области, 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