splitvars

Разделите многостолбцовые переменные в таблице или расписании

Синтаксис

T2 = splitvars(T1)
T2 = splitvars(T1,vars)
T2 = splitvars(___,'NewVariableNames',newNames)

Описание

пример

T2 = splitvars(T1) разделения все многостолбцовые переменные в T1 так, чтобы они были переменными отдельного столбца в T2 (см. схему). Все переменные отдельного столбца из T1 неизменны.

  • Если переменная в T1 имеет несколько столбцов, то splitvars делает уникальные имена для новых переменных в T2 с имени исходной переменной в T1.

  • Если переменная в T1 является самой таблицей, то splitvars использует имена своих переменных (и, при необходимости, имя той таблицы), чтобы сделать уникальные имена для новых переменных в T2.

Чтобы объединить переменные в одну многостолбцовую переменную, используйте функцию mergevars.

пример

T2 = splitvars(T1,vars) разделения только табличные переменные заданы vars. Можно задать переменные по наименованию положением или использованием логических индексов.

пример

T2 = splitvars(___,'NewVariableNames',newNames) задает newNames как имена переменных, которые разделены и скопированы в T2.

Примеры

свернуть все

Составьте таблицу от переменных рабочей области. Некоторые переменные являются матрицами с несколькими столбцами.

A = (1:3)';
B = [5 11 12; 20 30 50; 0.1 3.4 5.9]';
C = {'a','XX';'b','YY';'c','ZZ'};
D = [128 256 512]';
T1 = table(A,B,C,D)
T1=3×4 table
    A           B                 C          D 
    _    ________________    ___________    ___

    1     5     20    0.1    'a'    'XX'    128
    2    11     30    3.4    'b'    'YY'    256
    3    12     50    5.9    'c'    'ZZ'    512

Разделите переменные B и C. Все переменные в выходной таблице имеют один столбец.

T2 = splitvars(T1)
T2=3×7 table
    A    B_1    B_2    B_3    C_1    C_2      D 
    _    ___    ___    ___    ___    ____    ___

    1     5     20     0.1    'a'    'XX'    128
    2    11     30     3.4    'b'    'YY'    256
    3    12     50     5.9    'c'    'ZZ'    512

Составьте таблицу, которая содержит таблицы, с помощью массивов данных из файла patients.mat. Отобразите первые три строки.

load patients
Personal_Data = table(Gender,Age);
BMI_Data = table(Height,Weight);
BloodPressure = table(Systolic,Diastolic);
T1 = table(LastName,Personal_Data,BMI_Data,BloodPressure);
head(T1,3)
ans=3×4 table
     LastName      Personal_Data         BMI_Data            BloodPressure    
                   Gender     Age    Height    Weight    Systolic    Diastolic
    __________    _______________    ________________    _____________________

    'Smith'       'Male'      38       71       176        124          93    
    'Johnson'     'Male'      43       69       163        109          77    
    'Williams'    'Female'    38       64       131        125          83    

Задайте BloodPressure как переменную, чтобы разделить.

T2 = splitvars(T1,'BloodPressure');
head(T2,3)
ans=3×5 table
     LastName      Personal_Data         BMI_Data        Systolic    Diastolic
                   Gender     Age    Height    Weight                         
    __________    _______________    ________________    ________    _________

    'Smith'       'Male'      38       71       176        124          93    
    'Johnson'     'Male'      43       69       163        109          77    
    'Williams'    'Female'    38       64       131        125          83    

Чтобы задать несколько переменных по наименованию, используйте массив ячеек из символьных векторов.

T3 = splitvars(T1,{'BMI_Data','BloodPressure'});
head(T3,3)
ans=3×6 table
     LastName      Personal_Data     Height    Weight    Systolic    Diastolic
                   Gender     Age                                             
    __________    _______________    ______    ______    ________    _________

    'Smith'       'Male'      38       71       176        124          93    
    'Johnson'     'Male'      43       69       163        109          77    
    'Williams'    'Female'    38       64       131        125          83    

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

T4 = splitvars(T1,[2 4]);
head(T4,3)
ans=3×6 table
     LastName      Gender     Age        BMI_Data        Systolic    Diastolic
                                     Height    Weight                         
    __________    ________    ___    ________________    ________    _________

    'Smith'       'Male'      38       71       176        124          93    
    'Johnson'     'Male'      43       69       163        109          77    
    'Williams'    'Female'    38       64       131        125          83    

Составьте таблицу, которая содержит многостолбцовые переменные, с помощью данных из файла patients.mat. Отобразите первые три строки.

load patients
Personal_Data = [Age,Height,Weight];
BloodPressure = [Systolic,Diastolic];
T1 = table(LastName,Gender,Personal_Data,BloodPressure);
head(T1,3)
ans=3×4 table
     LastName      Gender      Personal_Data      BloodPressure
    __________    ________    ________________    _____________

    'Smith'       'Male'      38     71    176     124     93  
    'Johnson'     'Male'      43     69    163     109     77  
    'Williams'    'Female'    38     64    131     125     83  

Разделите BloodPressure и задайте новые имена для новых переменных в выходной таблице.

T2 = splitvars(T1,'BloodPressure','NewVariableNames',{'Systolic','Diastolic'});
head(T2,3)
ans=3×5 table
     LastName      Gender      Personal_Data      Systolic    Diastolic
    __________    ________    ________________    ________    _________

    'Smith'       'Male'      38     71    176      124          93    
    'Johnson'     'Male'      43     69    163      109          77    
    'Williams'    'Female'    38     64    131      125          83    

Разделите и BMI_Data и BloodPressure. Для каждой разделяемой переменной необходимо предоставить массиву ячеек правильное количество новых имен.

T3 = splitvars(T1,{'Personal_Data','BloodPressure'},...
     'NewVariableNames',{{'Age','Height','Weight'},{'Systolic','Diastolic'}});
head(T3,3)
ans=3×7 table
     LastName      Gender     Age    Height    Weight    Systolic    Diastolic
    __________    ________    ___    ______    ______    ________    _________

    'Smith'       'Male'      38       71       176        124          93    
    'Johnson'     'Male'      43       69       163        109          77    
    'Williams'    'Female'    38       64       131        125          83    

Входные параметры

свернуть все

Входная таблица, заданная как таблица или расписание.

Переменные во входной таблице, заданной как вектор символов, массив ячеек из символьных векторов, массив строк, числовой массив или логический массив.

Имена переменных разделения, заданных как массив ячеек из символьных векторов или массив строк.

Расширенные возможности

Введенный в R2018a