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