splitvars

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

Описание

пример

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

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

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

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

пример

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

пример

T2 = splitvars(T1,vars,'NewVariableNames',newNames) присваивает новые имена к обозначенным переменным, которые разделены из T1 и скопированный в 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