В этом примере показано, как добавить и удалить переменные в массиве набора данных. Можно также отредактировать массивы набора данных с помощью редактора Переменных.
Импортируйте данные из первого рабочего листа в 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
удален из массива набора данных.