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

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

См. также

| | | | | | |

Похожие темы