Этот пример показывает, как преобразовать переменную в таблице от массива ячеек из символьных векторов до категориального массива.
Загрузите демонстрационные данные, собранные от 100 пациентов.
load patients
whos
Name Size Bytes Class Attributes Age 100x1 800 double Diastolic 100x1 800 double Gender 100x1 12212 cell Height 100x1 800 double LastName 100x1 12416 cell Location 100x1 15008 cell SelfAssessedHealthStatus 100x1 12340 cell Smoker 100x1 100 logical Systolic 100x1 800 double Weight 100x1 800 double
Храните терпеливые данные от Age
, Gender
, Height
, Weight
, SelfAssessedHealthStatus
и Location
в таблице. Используйте уникальные идентификаторы в переменном LastName
как имена строки.
T = table(Age,Gender,Height,Weight,... SelfAssessedHealthStatus,Location,... 'RowNames',LastName);
Массивы ячеек из символьных векторов, Gender
и Location
, содержат дискретные наборы уникальных значений.
Преобразуйте Gender
и Location
к категориальным массивам.
T.Gender = categorical(T.Gender); T.Location = categorical(T.Location);
Переменная, SelfAssessedHealthStatus
, содержит четыре уникальных значения: Excellent
, Fair
, Good
и Poor
.
Преобразуйте SelfAssessedHealthStatus
в порядковый категориальный массив, такой, что категории имеют математическое упорядоченное расположение Poor < Fair < Good < Excellent
.
T.SelfAssessedHealthStatus = categorical(T.SelfAssessedHealthStatus,... {'Poor','Fair','Good','Excellent'},'Ordinal',true);
Просмотрите тип данных, описание, модули и другую описательную статистику для каждой переменной при помощи summary
, чтобы обобщить таблицу.
format compact
summary(T)
Variables: Age: 100x1 double Values: Min 25 Median 39 Max 50 Gender: 100x1 categorical Values: Female 53 Male 47 Height: 100x1 double Values: Min 60 Median 67 Max 72 Weight: 100x1 double Values: Min 111 Median 142.5 Max 202 SelfAssessedHealthStatus: 100x1 ordinal categorical Values: Poor 11 Fair 15 Good 40 Excellent 34 Location: 100x1 categorical Values: County General Hospital 39 St. Mary s Medical Center 24 VA Hospital 37
Табличные переменные Gender
, SelfAssessedHealthStatus
и Location
являются категориальными массивами. Сводные данные содержат количества числа элементов в каждой категории. Например, сводные данные указывают, что 53 из этих 100 пациентов являются розеткой, и 47 штекер.
Создайте подтаблицу, T1
, содержа возраст, высоту и вес всех пациенток, которые наблюдались в Главной больнице округа. Можно легко создать логический вектор на основе значений в категориальных массивах Gender
и Location
.
rows = T.Location=='County General Hospital' & T.Gender=='Female';
rows
является 100 1 логическим вектором с логическим true
(1
) для строк таблицы, где пол является розеткой, и местоположением является Главная больница округа.
Задайте подмножество переменных.
vars = {'Age','Height','Weight'};
Используйте круглые скобки, чтобы создать подтаблицу, T1
.
T1 = T(rows,vars)
T1=19×3 table
Age Height Weight
___ ______ ______
Brown 49 64 119
Taylor 31 66 132
Anderson 45 68 128
Lee 44 66 146
Walker 28 65 123
Young 25 63 114
Campbell 37 65 135
Evans 39 62 121
Morris 43 64 135
Rivera 29 63 130
Richardson 30 67 141
Cox 28 66 111
Torres 45 70 137
Peterson 32 60 136
Ramirez 48 64 137
Bennett 35 64 131 ⋮
A
19 3 таблица.
Поскольку порядковые категориальные массивы имеют математическое упорядоченное расположение для своих категорий, можно выполнить поэлементные сравнения их с реляционными операциями, такой как больше, чем и меньше, чем.
Создайте подтаблицу, T2
, пола, возраста, высоты и веса всех пациентов, которые оценили их состояние здоровья как плохое или справедливое.
Во-первых, задайте подмножество строк, чтобы включать в таблицу T2
.
rows = T.SelfAssessedHealthStatus<='Fair';
Затем задайте подмножество переменных, чтобы включать в таблицу T2
.
vars = {'Gender','Age','Height','Weight'};
Используйте круглые скобки, чтобы создать подтаблицу T2
.
T2 = T(rows,vars)
T2=26×4 table
Gender Age Height Weight
______ ___ ______ ______
Johnson Male 43 69 163
Jones Female 40 67 133
Thomas Female 42 66 137
Jackson Male 25 71 174
Garcia Female 27 69 131
Rodriguez Female 39 64 117
Lewis Female 41 62 137
Lee Female 44 66 146
Hall Male 25 70 189
Hernandez Male 36 68 166
Lopez Female 40 66 137
Gonzalez Female 35 66 118
Mitchell Male 39 71 164
Campbell Female 37 65 135
Parker Male 30 68 182
Stewart Male 49 68 170 ⋮
T2
26 4 таблица.