exponenta event banner

Массивы индексных и поисковых наборов данных

Примечание

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
    {'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  

См. также

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

Подробнее