В этом примере показано, как добавить и удалить переменные в массиве набора данных. Можно также отредактировать массивы набора данных с помощью редактора Переменных.
Импортируйте данные из первого рабочего листа в 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— который содержит индекс массы тела (BMI) для каждого пациента — к массиву набора данных. BMI является функцией высоты и веса. Отобразите фамилию, пол и 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Операторы ./ и .^ в вычислении BMI указывают на поэлементное деление и возведение в степень, соответственно.
Удалите переменную wgt, четвертая переменная в массиве набора данных.
ds(:,4) = []; ds.Properties.VarNames(:)
ans =
'name'
'sex'
'age'
'smoke'
'hgt'
'bmi'Переменная wgt удален из массива набора данных.