Main Content

splitvars

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

説明

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

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

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

For example, if T1 has a variable named var4, and var4 has two columns, then splitvars(T1) splits var4 into two variables named var4_1 and var4_2 in the output table.

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

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

T2 = splitvars(T1,vars,'NewVariableNames',newNames) は、指定された変数を T1 から分割して T2 にコピーし、その変数に新しい名前を割り当てます。

すべて折りたたむ

ワークスペース変数から 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)
      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)
      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)
      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)
      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)
      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)
      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)
      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 の変数。string 配列、文字ベクトル、文字ベクトルの cell 配列、pattern スカラー、数値配列、または logical 配列として指定します。

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

拡張機能

バージョン履歴

R2018a で導入