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