В этом примере показано, как добавлять и удалять переменные в массиве наборов данных. Можно также редактировать массивы наборов данных с помощью редактора переменных.
Импорт данных из первого листа в hospitalSmall.xlsx в массив набора данных.
ds = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx')); size(ds)
ans =
14 6Массив наборов данных, ds, имеет 14 наблюдений (строк) и 6 переменных (столбцов).
Рабочий лист Heights в hospitalSmall.xlsx имеет высоты для пациентов на первом листе. Объединение данных в этой электронной таблице с ds.
ds2 = dataset('XLSFile',fullfile(matlabroot,'help/toolbox/stats/examples','hospitalSmall.xlsx'),'Sheet','Heights'); ds = [ds ds2]; size(ds)
ans =
14 7Теперь массив наборов данных содержит семь переменных. Можно только горизонтально объединять массивы наборов данных с наблюдениями в одной позиции или с теми же именами наблюдений.
ds.Properties.VarNames{end}ans = hgt
Имя последней переменной в ds является hgt, который dataset считывается из первой строки импортированной электронной таблицы.
Сначала укажите уникальные идентификаторы в переменной id в качестве названий наблюдений. Затем удалите переменную id из массива наборов данных.
ds.Properties.ObsNames = ds.id; ds.id = []; size(ds)
ans =
14 6Теперь массив наборов данных содержит шесть переменных. Перечислите имена переменных.
ds.Properties.VarNames(:)
ans =
'name'
'sex'
'age'
'wgt'
'smoke'
'hgt'Больше нет переменной с именем id.
Добавление новой переменной, bmi- который содержит индекс массы тела (ИМТ) для каждого пациента - в массив наборов данных. ИМТ - это функция роста и веса. Отображение фамилии, пола и ИМТ для каждого пациента.
ds.bmi = ds.wgt*703./ds.hgt.^2;
ds(:,{'name','sex','bmi'})ans =
name sex bmi
YPL-320 'SMITH' 'm' 24.544
GLI-532 'JOHNSON' 'm' 24.068
PNI-258 'WILLIAMS' 'f' 23.958
MIJ-579 'JONES' 'f' 25.127
XLK-030 'BROWN' 'f' 21.078
TFP-518 'DAVIS' 'f' 27.729
LPD-746 'MILLER' 'f' 26.828
ATA-945 'WILSON' 'm' 24.41
VNL-702 'MOORE' 'm' 27.822
LQW-768 'TAYLOR' 'f' 22.655
QFY-472 'ANDERSON' 'f' 23.409
UJG-627 'THOMAS' 'f' 25.883
XUE-826 'JACKSON' 'm' 24.265
TRW-072 'WHITE' 'm' 29.827Операторы ./ и .^ в расчете ИМТ указывают деление на элементы и возведение в степень соответственно.
Удалить переменную wgt, четвертая переменная в массиве наборов данных.
ds(:,4) = []; ds.Properties.VarNames(:)
ans =
'name'
'sex'
'age'
'smoke'
'hgt'
'bmi'Переменная wgt удаляется из массива наборов данных.