Выбор подмножеств наблюдений

Этот пример показывает, как выбрать наблюдения или подмножество наблюдений из массива набора данных.

Загрузите выборочные данные.

Загрузите образец массива набора данных, 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

Массив набора данных имеет на один меньше наблюдений.

См. также

Похожие примеры

Подробнее о