Этот пример показывает, как работать с переменными типа массив набора данных и их данными.
Вы можете данные о переменной доступа, или выбирать подмножество переменных, при помощи переменной (столбец) имена и точечная индексация. Загрузите демонстрационный массив набора данных. Отобразите имена переменных в hospital
.
load hospital
hospital.Properties.VarNames(:)
ans = 7x1 cell array
{'LastName' }
{'Sex' }
{'Age' }
{'Weight' }
{'Smoker' }
{'BloodPressure'}
{'Trials' }
Массив набора данных имеет 7 переменных (столбцы) и 100 наблюдений (строки). Можно дважды кликнуть hospital
в окне Workspace, чтобы просмотреть массив набора данных в редакторе Переменных.
Постройте гистограмму данных в переменной Weight
.
figure histogram(hospital.Weight)
Гистограмма показывает, что распределение веса является бимодальным.
Чертите диаграммы Weight
, сгруппированного значениями в Sex
(Штекер и Розетка). Таким образом, используйте переменную Sex
в качестве группирующей переменной.
figure boxplot(hospital.Weight,hospital.Sex)
Диаграмма предполагает, что пол составляет bimodality в весе.
Создайте новый массив набора данных только с переменными LastName
, Sex
и Weight
. Можно получить доступ к переменным по наименованию или номеру столбца.
ds1 = hospital(:,{'LastName','Sex','Weight'}); ds2 = hospital(:,[1,2,4]);
Массивы набора данных ds1
и ds2
эквивалентны. Используйте круглые скобки ( )
при индексации массивов набора данных, чтобы сохранить тип данных; то есть, чтобы создать массив набора данных из подмножества массива набора данных. Можно также использовать редактор Переменных, чтобы создать новый массив набора данных из подмножества переменных и наблюдений.
Преобразуйте тип данных переменной Smoker
от логического до номинала с, маркирует No
и Yes
.
hospital.Smoker = nominal(hospital.Smoker,{'No','Yes'}); class(hospital.Smoker)
ans = 'nominal'
Отобразите первые 10 элементов Smoker
.
hospital.Smoker(1:10)
ans = 10x1 nominal array
Yes
No
No
No
No
No
Yes
No
No
No
Если вы хотите изменить метки уровня в номинальном массиве, используйте setlabels
.
Переменная BloodPressure
100 2 массив. Первый столбец соответствует систолическому кровяному давлению и второму столбцу к диастолическому кровяному давлению. Разделите этот массив на две новых переменные, SysPressure
и DiaPressure
.
hospital.SysPressure = hospital.BloodPressure(:,1); hospital.DiaPressure = hospital.BloodPressure(:,2); hospital.Properties.VarNames(:)
ans = 9x1 cell array
{'LastName' }
{'Sex' }
{'Age' }
{'Weight' }
{'Smoker' }
{'BloodPressure'}
{'Trials' }
{'SysPressure' }
{'DiaPressure' }
Массив набора данных, hospital
, имеет две новых переменные.
Используйте regexp
, чтобы найти переменные в hospital
с 'Pressure'
на их имя. Создайте новый массив набора данных, содержащий только эти переменные.
bp = regexp(hospital.Properties.VarNames,'Pressure');
bpIdx = cellfun(@isempty,bp);
bpData = hospital(:,~bpIdx);
bpData.Properties.VarNames(:)
ans = 3x1 cell array
{'BloodPressure'}
{'SysPressure' }
{'DiaPressure' }
Новый массив набора данных, bpData
, содержит только переменные кровяного давления.
Удалите переменную BloodPressure
из массива набора данных, hospital
.
hospital.BloodPressure = []; hospital.Properties.VarNames(:)
ans = 8x1 cell array
{'LastName' }
{'Sex' }
{'Age' }
{'Weight' }
{'Smoker' }
{'Trials' }
{'SysPressure'}
{'DiaPressure'}
Переменная BloodPressure
больше не находится в массиве набора данных.