Main Content

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

splitvars

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

説明

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 で導入