exponenta event banner

Добавление, удаление и изменение порядка табличных переменных

В этом примере показано, как добавлять, удалять и переупорядочивать переменные, ориентированные на столбцы, в таблице. Можно добавлять, перемещать и удалять переменные таблицы с помощью 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

См. также

| | | | | | |

Связанные темы