splitvars

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

Описание

пример

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

Для просмотра документации необходимо авторизоваться на сайте