Индексируйте и ищите массивы набора данных

Примечание

Тип данных dataset может быть удален в будущем релизе. Чтобы работать с гетерогенными данными, используйте тип данных MATLAB® table вместо этого. Смотрите MATLAB документация table для получения дополнительной информации.

Способы индексировать и искать

Существует много способов индексировать в массивы набора данных. Например, для массива набора данных, ds, вы можете:

  • Используйте (), чтобы создать новый массив набора данных из подмножества ds. Например, ds1 = ds(1:5,:) создает новый массив набора данных, ds1, состоя из первых пяти строк ds. Метаданные, включая переменную и имена наблюдения, передают новому массиву набора данных.

  • Используйте имена переменных с записью через точку, чтобы индексировать отдельные переменные в массиве набора данных. Например, ds.Height индексирует переменную под названием Height.

  • Используйте имена наблюдения, чтобы индексировать отдельные наблюдения в массиве набора данных. Например, ds('Obs1',:) дает данные для наблюдения под названием Obs1.

  • Используйте наблюдение или переменные числа. Например, ds(:,[1,3,5]) дает данные в первых, третьих, и пятых переменных (столбцы) ds.

  • Используйте логическую индексацию, чтобы искать наблюдения в ds, которые удовлетворяют логическое условие. Например, ds(ds.Gender=='Male',:) дает наблюдения в ds, где переменная под названием Gender, номинальный массив, имеет значение Male.

  • Используйте ismissing, чтобы найти недостающие данные в массиве набора данных.

Примеры

Общая индексация и поиск методов

Этот пример показывает несколько индексаций и поиска методов для категориальных массивов.

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

load hospital;
size(hospital)
ans = 1×2

   100     7

Массив набора данных имеет 100 наблюдений и 7 переменных.

Индексируйте переменную по наименованию. Возвратите минимальный возраст в массиве набора данных.

min(hospital.Age)
ans = 25

Удалите переменную Trials.

hospital.Trials = [];
size(hospital)
ans = 1×2

   100     6

Индексируйте наблюдение по наименованию. Отобразите измерения на первых пяти переменных для наблюдения под названием PUE-347.

hospital('PUE-347',1:5)
ans = 
               LastName       Sex       Age    Weight    Smoker
    PUE-347    'YOUNG'        Female    25     114       false 

Индексируйте переменные номером. Создайте новый массив набора данных, содержащий первые четыре переменные hospital.

dsNew = hospital(:,1:4);
dsNew.Properties.VarNames(:)
ans = 4x1 cell array
    {'LastName'}
    {'Sex'     }
    {'Age'     }
    {'Weight'  }

Индексируйте наблюдения номером. Удалите последние 10 наблюдений.

hospital(end-9:end,:) = [];
size(hospital)
ans = 1×2

    90     6

Ищите наблюдения логическим условием. Создайте новый массив набора данных, содержащий только розетки, которые курят.

dsFS = hospital(hospital.Sex=='Female' & hospital.Smoker==true,:);
dsFS(:,{'LastName','Sex','Smoker'})
ans = 
               LastName           Sex       Smoker
    LPD-746    'MILLER'           Female    true  
    XBR-291    'GARCIA'           Female    true  
    AAX-056    'LEE'              Female    true  
    DTT-578    'WALKER'           Female    true  
    AFK-336    'WRIGHT'           Female    true  
    RBA-579    'SANCHEZ'          Female    true  
    HAK-381    'MORRIS'           Female    true  
    NSK-403    'RAMIREZ'          Female    true  
    ILS-109    'WATSON'           Female    true  
    JDR-456    'SANDERS'          Female    true  
    HWZ-321    'PATTERSON'        Female    true  
    GGU-691    'HUGHES'           Female    true  
    WUS-105    'FLORES'           Female    true  

Смотрите также

Связанные примеры

Больше о