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