Этот пример показывает, как выбрать наблюдения или подмножество наблюдений из массива набора данных.
Загрузите образец массива набора данных, 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
Массив набора данных имеет на один меньше наблюдений.