ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

splitvars

table または timetable の複数列の変数を分割

構文

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

説明

T2 = splitvars(T1) は、T1 のすべての複数列の変数を分割し、T2 で 1 列の変数になるようにします (図を参照)。T1 の 1 列の変数はいずれも変更されません。

  • T1 の変数に複数の列がある場合、splitvarsT1 の元の変数名から T2 の新しい変数の一意名を作成します。

  • T1 の変数のいずれかが table 自体である場合、splitvars は変数の名前 (および、必要があればその table の名前) を使用して、T2 の新しい変数の一意名を作成します。

変数を 1 つの複数列の変数に統合するには、関数 mergevars を使用します。

T2 = splitvars(T1,vars) は、vars で指定された table 変数のみを分割します。変数は名前や位置で指定するか、論理インデックスを使用して指定することができます。

T2 = splitvars(___,'NewVariableNames',newNames) は、分割されて T2 にコピーされた変数の名前として newNames を指定します。

すべて折りたたむ

ワークスペース変数から table を作成します。一部の変数は、複数の列をもつ行列です。

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

変数 BC を分割します。出力 table のすべての変数には 1 つの列があります。

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 ファイルのデータの配列を使用して、table が格納された table を作成します。最初の 3 行を表示します。

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    

複数の変数を名前で指定するには、文字ベクトルの cell 配列を使用します。

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 ファイルのデータを使用して、複数列の変数をもつ table を作成します。最初の 3 行を表示します。

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 を分割して、出力 table の新しい変数に新しい名前を指定します。

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_DataBloodPressure の両方を分割します。分割する変数のそれぞれについて、正しい数の新しい名前をもつ cell 配列を指定しなければなりません。

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    

入力引数

すべて折りたたむ

入力 table。table または timetable として指定します。

入力 table の変数。文字ベクトル、文字ベクトルの cell 配列、string 配列、数値配列、または logical 配列として指定します。

分割した変数の名前。文字ベクトルの cell 配列または string 配列として指定します。

R2018a で導入