Тип данных 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