Доступ к данным в переменных типа массив набора данных

В этом примере показано, как работать с переменными типа массив набора данных и их данными.

Переменные доступа по наименованию.

Вы можете данные о переменной доступа, или выбирать подмножество переменных, при помощи переменной (столбец) имена и точечная индексация. Загрузите демонстрационный массив набора данных. Отобразите имена переменных в hospital.

load hospital 
hospital.Properties.VarNames(:)
ans = 7x1 cell
    {'LastName'     }
    {'Sex'          }
    {'Age'          }
    {'Weight'       }
    {'Smoker'       }
    {'BloodPressure'}
    {'Trials'       }

Массив набора данных имеет 7 переменных (столбцы) и 100 наблюдений (строки). Можно дважды кликнуть hospital в окне Workspace, чтобы просмотреть массив набора данных в редакторе Переменных.

Графическое изображение гистограммы.

Постройте гистограмму данных в переменной Weight.

figure
histogram(hospital.Weight)

Гистограмма показывает, что распределение веса является бимодальным.

Отобразите на графике данные, сгруппированные по категориям.

Чертите диаграммы Weight сгруппированный значениями в Sex (Штекер и Розетка). Таким образом, используйте переменную Sex как сгруппированная переменная.

figure
boxplot(hospital.Weight,hospital.Sex)

Диаграмма предполагает, что пол составляет bimodality в весе.

Выберите подмножество переменных.

Создайте новый массив набора данных только с переменными LastName, Sex, и Weight. Можно получить доступ к переменным по наименованию или номеру столбца.

ds1 = hospital(:,{'LastName','Sex','Weight'});
ds2 = hospital(:,[1,2,4]);

Массивы набора данных ds1 и ds2 эквивалентны. Используйте круглые скобки ( ) при индексации массивов набора данных, чтобы сохранить тип данных; то есть, чтобы создать массив набора данных из подмножества массива набора данных. Можно также использовать редактор Переменных, чтобы создать новый массив набора данных из подмножества переменных и наблюдений.

Преобразуйте типы данных переменных.

Преобразуйте тип данных переменной Smoker от логического до номинала с маркирует No и Yes.

hospital.Smoker = nominal(hospital.Smoker,{'No','Yes'});
class(hospital.Smoker)
ans = 
'nominal'

Исследование данных.

Отобразите первые 10 элементов Smoker.

hospital.Smoker(1:10)
ans = 10x1 nominal
     Yes 
     No 
     No 
     No 
     No 
     No 
     Yes 
     No 
     No 
     No 

Если вы хотите изменить метки уровня в номинальном массиве, используйте setlabels.

Добавьте переменные.

Переменная BloodPressure 100 2 массив. Первый столбец соответствует систолическому артериальному давлению и второму столбцу к диастолическому артериальному давлению. Разделите этот массив на две новых переменные, SysPressure и DiaPressure.

hospital.SysPressure = hospital.BloodPressure(:,1);
hospital.DiaPressure = hospital.BloodPressure(:,2);
hospital.Properties.VarNames(:)
ans = 9x1 cell
    {'LastName'     }
    {'Sex'          }
    {'Age'          }
    {'Weight'       }
    {'Smoker'       }
    {'BloodPressure'}
    {'Trials'       }
    {'SysPressure'  }
    {'DiaPressure'  }

Массив набора данных, hospital, имеет две новых переменные.

Ищите переменные по наименованию.

Используйте regexp найти переменные в hospital с 'Pressure' на их имя. Создайте новый массив набора данных, содержащий только эти переменные.

bp = regexp(hospital.Properties.VarNames,'Pressure');
bpIdx = cellfun(@isempty,bp);
bpData = hospital(:,~bpIdx);
bpData.Properties.VarNames(:)
ans = 3x1 cell
    {'BloodPressure'}
    {'SysPressure'  }
    {'DiaPressure'  }

Новый массив набора данных, bpData, содержит только переменные артериального давления.

Удалите переменные.

Удалите переменную BloodPressure от массива набора данных, hospital.

hospital.BloodPressure = [];
hospital.Properties.VarNames(:)
ans = 8x1 cell
    {'LastName'   }
    {'Sex'        }
    {'Age'        }
    {'Weight'     }
    {'Smoker'     }
    {'Trials'     }
    {'SysPressure'}
    {'DiaPressure'}

Переменная BloodPressure больше не находится в массиве набора данных.

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

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

Больше о

Для просмотра документации необходимо авторизоваться на сайте