В этом примере показано, как добавить, удалить и переставить ориентированные на столбцы переменные в таблице. Вы можете добавлять, перемещать и удалять табличные переменные с помощью addvars
, movevars
, и removevars
функций. В качестве альтернативы можно также изменить табличные переменные с помощью синтаксиса точки или путем индексации в таблицу. Используйте splitvars
и mergevars
функции для разделения многополюсных переменных и объединения нескольких переменных в одну. Наконец, можно переориентировать таблицу так, чтобы строки таблицы стали переменными выходами таблицы, используя rows2vars
функция.
Можно также изменить табличные переменные с помощью Редактора переменных.
Загрузка массивов выборочных данных из patients
MAT-файл. Отображение имен и размеров переменных, загруженных в рабочую область.
load patients whos -file patients
Name Size Bytes Class Attributes Age 100x1 800 double Diastolic 100x1 800 double Gender 100x1 11412 cell Height 100x1 800 double LastName 100x1 11616 cell Location 100x1 14208 cell SelfAssessedHealthStatus 100x1 11540 cell Smoker 100x1 100 logical Systolic 100x1 800 double Weight 100x1 800 double
Создайте две таблицы. Создайте одну таблицу, T
, с информацией, собранной из анкеты пациента, и создать другую таблицу, T2
с данными, измеренными от пациентов. Каждая таблица имеет 100 строк.
T = table(Age,Gender,Smoker); T2 = table(Height,Weight,Systolic,Diastolic);
Отображение первых пяти строк каждой таблицы.
head(T,5)
ans=5×3 table
Age Gender Smoker
___ __________ ______
38 {'Male' } true
43 {'Male' } false
38 {'Female'} false
40 {'Female'} false
49 {'Female'} false
head(T2,5)
ans=5×4 table
Height Weight Systolic Diastolic
______ ______ ________ _________
71 176 124 93
69 163 109 77
64 131 125 83
67 133 117 75
64 119 122 80
Добавьте переменные в таблицу T
путем горизонтальной конкатенации с T2
.
T = [T T2];
Отображение первых пяти строк T
.
head(T,5)
ans=5×7 table
Age Gender Smoker Height Weight Systolic Diastolic
___ __________ ______ ______ ______ ________ _________
38 {'Male' } true 71 176 124 93
43 {'Male' } false 69 163 109 77
38 {'Female'} false 64 131 125 83
40 {'Female'} false 67 133 117 75
49 {'Female'} false 64 119 122 80
Таблица T
теперь имеет 7 переменных и 100 строк.
Если таблицы, которые вы горизонтально конкатенируете, имеют имена строк, horzcat
конкатенирует таблицы, совпадая с именами строк. Поэтому в таблицах должны использоваться те же имена строк, но порядок строк не имеет значения.
Добавьте имена пациентов из переменной рабочей области LastName
перед первой табличной переменной в T
. Вы можете задать любое место в таблице, используя имя переменной рядом с новым местом. Используйте кавычки для ссылки на имена табличных переменных. Однако не используйте кавычки для входных параметров, которые являются переменными рабочей области.
T = addvars(T,LastName,'Before','Age'); head(T,5)
ans=5×8 table
LastName Age Gender Smoker Height Weight Systolic Diastolic
____________ ___ __________ ______ ______ ______ ________ _________
{'Smith' } 38 {'Male' } true 71 176 124 93
{'Johnson' } 43 {'Male' } false 69 163 109 77
{'Williams'} 38 {'Female'} false 64 131 125 83
{'Jones' } 40 {'Female'} false 67 133 117 75
{'Brown' } 49 {'Female'} false 64 119 122 80
Можно также задать местоположения в таблице с помощью чисел. Например, эквивалентный синтаксис, использующий число для задания местоположения T = addvars(T,LastName,'Before',1)
.
Альтернативным способом добавления новых табличных переменных является использование синтаксиса точки. Когда вы используете синтаксис точки, вы всегда добавляете новую переменную в качестве последней табличной переменной. Можно добавить переменную с любым типом данных, если она имеет одинаковое число строк, что и таблица.
Создайте новую переменную артериального давления как горизонтальную конкатенацию двух переменных Systolic
и Diastolic
. Добавьте его к T
.
T.BloodPressure = [Systolic Diastolic]; head(T,5)
ans=5×9 table
LastName Age Gender Smoker Height Weight Systolic Diastolic BloodPressure
____________ ___ __________ ______ ______ ______ ________ _________ _____________
{'Smith' } 38 {'Male' } true 71 176 124 93 124 93
{'Johnson' } 43 {'Male' } false 69 163 109 77 109 77
{'Williams'} 38 {'Female'} false 64 131 125 83 125 83
{'Jones' } 40 {'Female'} false 67 133 117 75 117 75
{'Brown' } 49 {'Female'} false 64 119 122 80 122 80
T
теперь имеет 9 переменных и 100 строк. Табличная переменная может иметь несколько столбцов. Так что хотя BloodPressure
имеет два столбца, это одна табличная переменная.
Добавьте новую переменную, BMI
, в таблице T
, который содержит индекс массы тела для каждого пациента. BMI
является функцией роста и веса. Когда вы вычисляете BMI
, можно обратиться к Weight
и Height
переменные, которые находятся в T
.
T.BMI = (T.Weight*0.453592)./(T.Height*0.0254).^2;
Операторы ./
и .^
в вычислении BMI
указание элементарного деления и экспоненции, соответственно.
Отобразите первые пять строк таблицы T
.
head(T,5)
ans=5×10 table
LastName Age Gender Smoker Height Weight Systolic Diastolic BloodPressure BMI
____________ ___ __________ ______ ______ ______ ________ _________ _____________ ______
{'Smith' } 38 {'Male' } true 71 176 124 93 124 93 24.547
{'Johnson' } 43 {'Male' } false 69 163 109 77 109 77 24.071
{'Williams'} 38 {'Female'} false 64 131 125 83 125 83 22.486
{'Jones' } 40 {'Female'} false 67 133 117 75 117 75 20.831
{'Brown' } 49 {'Female'} false 64 119 122 80 122 80 20.426
Переместите табличную переменную BMI
использование movevars
функцию, так что она после переменной Weight
. Когда вы задаете табличные переменные по имени, используйте кавычки.
T = movevars(T,'BMI','After','Weight'); head(T,5)
ans=5×10 table
LastName Age Gender Smoker Height Weight BMI Systolic Diastolic BloodPressure
____________ ___ __________ ______ ______ ______ ______ ________ _________ _____________
{'Smith' } 38 {'Male' } true 71 176 24.547 124 93 124 93
{'Johnson' } 43 {'Male' } false 69 163 24.071 109 77 109 77
{'Williams'} 38 {'Female'} false 64 131 22.486 125 83 125 83
{'Jones' } 40 {'Female'} false 67 133 20.831 117 75 117 75
{'Brown' } 49 {'Female'} false 64 119 20.426 122 80 122 80
Можно также задать местоположения в таблице с помощью чисел. Например, эквивалентный синтаксис, использующий число для задания местоположения T = movevars(T,'BMI,'After',6)
. Часто удобнее обращаться к переменным по имени.
В качестве альтернативы можно переместить табличные переменные путем индексации. Можно индексировать в таблицу с помощью того же синтаксиса, который вы используете для индексации в матрицу.
Переместить BloodPressure
чтобы это было рядом с BMI
.
T = T(:,[1:7 10 8 9]); head(T,5)
ans=5×10 table
LastName Age Gender Smoker Height Weight BMI BloodPressure Systolic Diastolic
____________ ___ __________ ______ ______ ______ ______ _____________ ________ _________
{'Smith' } 38 {'Male' } true 71 176 24.547 124 93 124 93
{'Johnson' } 43 {'Male' } false 69 163 24.071 109 77 109 77
{'Williams'} 38 {'Female'} false 64 131 22.486 125 83 125 83
{'Jones' } 40 {'Female'} false 67 133 20.831 117 75 117 75
{'Brown' } 49 {'Female'} false 64 119 20.426 122 80 122 80
В таблице со многими переменными часто удобнее использовать movevars
функция.
Чтобы удалить табличные переменные, используйте removevars
функция. Удалите Systolic
и Diastolic
табличные переменные.
T = removevars(T,{'Systolic','Diastolic'}); head(T,5)
ans=5×8 table
LastName Age Gender Smoker Height Weight BMI BloodPressure
____________ ___ __________ ______ ______ ______ ______ _____________
{'Smith' } 38 {'Male' } true 71 176 24.547 124 93
{'Johnson' } 43 {'Male' } false 69 163 24.071 109 77
{'Williams'} 38 {'Female'} false 64 131 22.486 125 83
{'Jones' } 40 {'Female'} false 67 133 20.831 117 75
{'Brown' } 49 {'Female'} false 64 119 20.426 122 80
В качестве альтернативы можно удалить переменные с помощью синтаксиса точки и пустой матрицы, []
. Удалите Age
переменная из таблицы.
T.Age = []; head(T,5)
ans=5×7 table
LastName Gender Smoker Height Weight BMI BloodPressure
____________ __________ ______ ______ ______ ______ _____________
{'Smith' } {'Male' } true 71 176 24.547 124 93
{'Johnson' } {'Male' } false 69 163 24.071 109 77
{'Williams'} {'Female'} false 64 131 22.486 125 83
{'Jones' } {'Female'} false 67 133 20.831 117 75
{'Brown' } {'Female'} false 64 119 20.426 122 80
Можно также удалить переменные с помощью индексации и пустой матрицы, []
. Удалите Gender
переменная из таблицы.
T(:,'Gender') = [];
head(T,5)
ans=5×6 table
LastName Smoker Height Weight BMI BloodPressure
____________ ______ ______ ______ ______ _____________
{'Smith' } true 71 176 24.547 124 93
{'Johnson' } false 69 163 24.071 109 77
{'Williams'} false 64 131 22.486 125 83
{'Jones' } false 67 133 20.831 117 75
{'Brown' } false 64 119 20.426 122 80
Чтобы разделить многополюсные табличные переменные на переменные, каждый из которых имеет по одному столбцу, используйте splitvars
функций. Разделите переменную BloodPressure
в две переменные.
T = splitvars(T,'BloodPressure','NewVariableNames',{'Systolic','Diastolic'}); head(T,5)
ans=5×7 table
LastName Smoker Height Weight BMI Systolic Diastolic
____________ ______ ______ ______ ______ ________ _________
{'Smith' } true 71 176 24.547 124 93
{'Johnson' } false 69 163 24.071 109 77
{'Williams'} false 64 131 22.486 125 83
{'Jones' } false 67 133 20.831 117 75
{'Brown' } false 64 119 20.426 122 80
Точно так же можно сгруппировать связанные табличные переменные в одну переменную, используя mergevars
функция. Объедините Systolic
и Diastolic
вернемся в одну переменную и назовите ее BP
.
T = mergevars(T,{'Systolic','Diastolic'},'NewVariableName','BP'); head(T,5)
ans=5×6 table
LastName Smoker Height Weight BMI BP
____________ ______ ______ ______ ______ __________
{'Smith' } true 71 176 24.547 124 93
{'Johnson' } false 69 163 24.071 109 77
{'Williams'} false 64 131 22.486 125 83
{'Jones' } false 67 133 20.831 117 75
{'Brown' } false 64 119 20.426 122 80
Можно переориентировать строки таблицы или расписания, чтобы они стали переменными в выход таблице, используя rows2vars
функция. Однако, если таблица имеет многополюсные переменные, то вы должны разделить их, прежде чем вы сможете вызвать rows2vars
.
Переориентируйте строки T
. Укажите, что имена пациентов в T
- имена табличных переменных в таблице выхода. Первая переменная T3
содержит имена переменных T
. Каждая оставшаяся переменная T3
содержит данные из соответствующей строки T
.
T = splitvars(T,'BP','NewVariableNames',{'Systolic','Diastolic'}); T3 = rows2vars(T,'VariableNamesSource','LastName'); T3(:,1:5)
ans=6×5 table
OriginalVariableNames Smith Johnson Williams Jones
_____________________ ______ _______ ________ ______
{'Smoker' } 1 0 0 0
{'Height' } 71 69 64 67
{'Weight' } 176 163 131 133
{'BMI' } 24.547 24.071 22.486 20.831
{'Systolic' } 124 109 125 117
{'Diastolic'} 93 77 83 75
Можно использовать синтаксис точки с T3
для доступа к данным о пациентах как к массиву. Однако, если значения строк входа таблицы не могут быть объединены, то переменные выходы таблицы являются массивами ячеек.
T3.Smith
ans = 6×1
1.0000
71.0000
176.0000
24.5467
124.0000
93.0000
addvars
| inner2outer
| mergevars
| movevars
| removevars
| rows2vars
| splitvars
| table