Добавьте, удалите и перестройте табличные переменные

Этот пример показывает, как добавить, удалить, и перестроить ориентированный на столбец на переменные в таблице. Можно добавить, переместить и удалить табличные переменные с помощью addvars, movevars и функций removevars. Как альтернативы, также можно изменить табличные переменные с помощью точечного синтаксиса или путем индексации в таблицу. Используйте splitvars и функции mergevars, чтобы разделить многостолбцовые переменные и объединить несколько переменных в одну. Наконец, можно переориентировать таблицу так, чтобы строки таблицы стали переменными выходной таблицы, с помощью функции rows2vars.

Также можно изменить табличные переменные с помощью Редактора Переменных.

Загрузите выборочные данные и составьте таблицы

Загрузите массивы выборочных данных из MAT-файла patients. Отобразите имена и размеры переменных, загруженных в рабочую область.

load patients
whos -file patients
  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               

Составьте две таблицы. Составьте одну таблицу, 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

Переменная Move в таблице

Переместите табличную переменную 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. Удалите табличные переменные Diastolic и Systolic.

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

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

| | | | | | |

Похожие темы