Этот пример показывает, как выбрать наблюдения или подмножество наблюдений из массива набора данных.
Загрузите образец массива набора данных, hospital
. Массивы набора данных могут иметь имена наблюдений (строка). Этот массив имеет имена наблюдений, соответствующие уникальным идентификаторам пациентов.
load hospital
hospital.Properties.ObsNames(1:10)
ans = 10x1 cell
{'YPL-320'}
{'GLI-532'}
{'PNI-258'}
{'MIJ-579'}
{'XLK-030'}
{'TFP-518'}
{'LPD-746'}
{'ATA-945'}
{'VNL-702'}
{'LQW-768'}
Это первые 10 имен наблюдений.
Можно использовать имена наблюдений для индекса в массив набора данных. Например, извлеките имя, пол и возраст для пациента с идентификатором XLK-030
.
hospital('XLK-030',{'LastName','Sex','Age'})
ans = LastName Sex Age XLK-030 {'BROWN'} Female 49
Создайте новый массив набора данных, содержащий первые 50 пациентов.
ds50 = hospital(1:50,:); size(ds50)
ans = 1×2
50 7
Создайте новый массив набора данных, содержащий только пациентов мужского пола. Чтобы найти пациентов мужского пола, используйте логическое условие для поиска переменной, содержащей гендерную информацию.
dsMale = hospital(hospital.Sex=='Male',:); dsMale(1:10,{'LastName','Sex'})
ans = LastName Sex YPL-320 {'SMITH' } Male GLI-532 {'JOHNSON' } Male ATA-945 {'WILSON' } Male VNL-702 {'MOORE' } Male XUE-826 {'JACKSON' } Male TRW-072 {'WHITE' } Male KOQ-996 {'MARTIN' } Male YUZ-646 {'THOMPSON'} Male KPW-846 {'MARTINEZ'} Male XBA-581 {'ROBINSON'} Male
Для поиска массива набора данных можно использовать несколько условий. Например, создайте новый массив набора данных, содержащий только женщин-пациентов старше 40 лет.
dsFemale = hospital(hospital.Sex=='Female' & hospital.Age > 40,:); dsFemale(1:10,{'LastName','Sex','Age'})
ans = LastName Sex Age XLK-030 {'BROWN' } Female 49 TFP-518 {'DAVIS' } Female 46 QFY-472 {'ANDERSON'} Female 45 UJG-627 {'THOMAS' } Female 42 BKD-785 {'CLARK' } Female 48 VWL-936 {'LEWIS' } Female 41 AAX-056 {'LEE' } Female 44 AFK-336 {'WRIGHT' } Female 45 KKL-155 {'ADAMS' } Female 48 RBA-579 {'SANCHEZ' } Female 44
Создайте новый массив набора данных, содержащий случайный подмножество из 20 пациентов из массива набора данных hospital
.
rng('default') % For reproducibility dsRandom = hospital(randsample(length(hospital),20),:); dsRandom.Properties.ObsNames
ans = 20x1 cell
{'DAU-529'}
{'AGR-528'}
{'RBO-332'}
{'QOO-305'}
{'RVS-253'}
{'QEQ-082'}
{'EHE-616'}
{'HVR-372'}
{'KOQ-996'}
{'REV-997'}
{'PUE-347'}
{'LQW-768'}
{'YLN-495'}
{'HJQ-495'}
{'ELG-976'}
{'XUE-826'}
{'MEZ-469'}
{'UDS-151'}
{'MIJ-579'}
{'DGC-290'}
Удалите данные для пациента с именем наблюдения HVR-372
.
hospital('HVR-372',:) = [];
size(hospital)
ans = 1×2
99 7
Массив набора данных имеет на один меньше наблюдений.