Примечание
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