ドキュメンテーション

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

table

異なる型を含むことができる名前付き変数をもつ table 配列

説明

配列 table は、テキスト ファイルやスプレッドシートの列など、列方向データや表形式データを格納します。table は、"変数" にそれぞれの列方向データを格納します。各変数の行数が同じであれば、table 変数にはデータ型やサイズが異なるデータを格納できます。関数 summary を使用して、table に関する情報を取得します。

table にインデックスを付けるには、丸かっこ () を使用してサブテーブルを返すか、または中かっこ {} を使用して数値配列などの内容を抽出します。名前を使用して変数と行を参照できます。インデックス方法の詳細については、テーブル内のデータへのアクセスを参照してください。

作成

ファイルからデータを table に読み取るには、関数 Import Tool または関数 readtable を使用できます。あるいは、以下に説明する関数 table を使用して、既存のワークスペース変数から table を作成します。

構文

T = table(var1,...,varN)
T = table(var1,...,varN,Name,Value)
T = table

説明

T = table(var1,...,varN) は、入力変数 var1,...,varN から table を作成します。変数にはさまざまなサイズとデータ型を使用できます。ただし、すべての変数に同じ数の行がなければなりません。

T = table(var1,...,varN,Name,Value) には、1 つ以上の Name,Value ペア引数によって指定された追加オプションが含まれます。

たとえば、table に含める行名または変数名を指定できます。

T = table は、0 行 0 列の空の table を作成します。

入力引数

すべて展開する

入力変数。同じ数の行をもつ配列として指定します。入力変数には、さまざまなサイズとデータ型を使用できます。

一般的な入力変数は、数値配列、logical 配列、文字配列、構造体配列または cell 配列です。入力変数には、配列のオブジェクトを使用することもできます。この配列は var(index1,...,indexN) の形式のインデックスをサポートしていなければなりません。index1 は変数 var の行に対応する数値または logical ベクトルです。さらにこの配列は、vertcat メソッドと、dim 引数をもつ size メソッドの両方を実装していなければなりません。

例: table([1:4]',ones(4,3,2),eye(4,2)) は、サイズが異なる 4 行の変数から table を作成します。

例: table([1:3]',{'one';'two';'three'},categorical({'A';'B';'C'})) は、データ型が異なる 3 つの行をもつ変数から table を作成します。

名前と値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name はプロパティ名で Value は対応する値です。次のプロパティのいずれか、または両方を任意の順序で設定できます。

例: T = table([10;20],{'M';'F'},'VariableNames',{'Age','Gender'},'RowNames',{'P1','P2'})

プロパティ

すべて展開する

tableName.Properties.PropertyName の形式を使用してプロパティにアクセスします。たとえば、table を作成し、VariableNames プロパティを使用してその変数の名前を変更します。

T = table([10;20],{'M';'F'});
T.Properties.VariableNames = {'Age','Gender'}

tableName.Properties を使用してすべてのプロパティの概要を返します。

T.Properties

tableName.Variables を使用してすべての timetable 変数を 1 つの配列に連結することもできます。この構文は、tableName{:,:} 構文と同じ配列を返します。

table メタデータ

変数名。空ではない一意の文字ベクトルの cell 配列として指定します。変数名は有効な MATLAB® 識別子でなければなりません。文字ベクトルの数は変数の数と等しくしくなければなりません。MATLAB は、文字ベクトルから先頭と末尾の空白をすべて削除します。

有効な識別子を変数名として使用できない場合、MATLAB は {'Var1' ... 'VarN'} の形式で N 個の文字ベクトルをもつ cell 配列を使用します。ここで、N は変数の数です。関数 isvarname を使用して有効な MATLAB 変数名を確認できます。

変数名は、table を表示するか、関数 summary を使用すると表示されます。また、変数名をかっこ内、中かっこ内またはドット インデックス付きで使用して table データにアクセスできます。

既定の変数名で table を作成します。次に、Properties.VariableNames プロパティを使用して名前を変更します。

T = table({'M';'M';'F';'F';'F'},[38;43;38;40;49],...
          [71;69;64;67;64],[176;163;131;133;119])
T =

  5x4 table

    Var1    Var2    Var3    Var4
    ____    ____    ____    ____

    'M'     38      71      176 
    'M'     43      69      163 
    'F'     38      64      131 
    'F'     40      67      133 
    'F'     49      64      119 

T.Properties.VariableNames = {'Gender' 'Age' 'Height' 'Weight'}
T =

  5x4 table

    Gender    Age    Height    Weight
    ______    ___    ______    ______

    'M'       38     71        176   
    'M'       43     69        163   
    'F'       38     64        131   
    'F'       40     67        133   
    'F'       49     64        119   

行名。空ではない一意の文字ベクトルの cell 配列として指定します。このプロパティは空にすることができますが、空でない場合、文字ベクトルの数は table の行数と等しくなければなりません。MATLAB は、文字ベクトルから先頭と末尾の空白をすべて削除します。既定のプロパティ値は空の cell 配列です。

行名は、table を表示すると可視化されます。また、行名をかっこ内または中かっこ内で使用して table データにアクセスできます。

table を作成します。次に、行名を追加してその名前で行にアクセスします。

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);

Properties.RowNames プロパティを使用して行名を追加します。既定では table に行名はありませんが、随時追加することができます。

T.Properties.RowNames = LastName;
head(T,4)
ans =

  4x7 table

                 Gender     Age    Height    Weight    Smoker    Systolic    Diastolic
                ________    ___    ______    ______    ______    ________    _________

    Smith       'Male'      38     71        176       true      124         93       
    Johnson     'Male'      43     69        163       false     109         77       
    Williams    'Female'    38     64        131       false     125         83       
    Jones       'Female'    40     67        133       false     117         75       

行名によって table にインデックスを付けます。

T({'Smith','Williams'},:)
ans =

  2x7 table

                 Gender     Age    Height    Weight    Smoker    Systolic    Diastolic
                ________    ___    ______    ______    ______    ________    _________

    Smith       'Male'      38     71        176       true      124         93       
    Williams    'Female'    38     64        131       false     125         83       

次元名。文字ベクトルの 2 要素 cell 配列として指定します。

table を作成します。Properties.DimensionNames プロパティを使用して、次元の名前を変更します。

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic,...
          'RowNames',LastName);
T.Properties.DimensionNames = {'Patient' 'Data'};
T.Properties
ans = 

  struct with fields:

             Description: ''
                UserData: []
          DimensionNames: {'Patient'  'Data'}
           VariableNames: {1x7 cell}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {100x1 cell}

table の説明。文字ベクトルとして指定します。この説明は、関数 summary を使用すると表示されます。

table を作成します。table の説明を変更します。結果の概要を表示します。

load patients
T = table(Gender,Age,Height,Weight);
T.Properties.Description = 'Simulated patient data';
summary(T)
Description:  Simulated patient data

Variables:

    Gender: 100x1 cell array of character vectors

    Age: 100x1 double

        Values:

            Min       25   
            Median    39   
            Max       50   

    Height: 100x1 double

        Values:

            Min       60      
            Median    67      
            Max       72      

    Weight: 100x1 double

        Values:

            Min         111   
            Median    142.5   
            Max         202   

変数の説明。文字ベクトルの cell 配列として指定します。このプロパティには空の cell 配列を指定できます。これは既定値です。cell 配列が空でない場合、文字ベクトルの数は変数の数と等しくなければなりません。説明がない変数について、cell 配列内に空の文字ベクトルを個別に指定できます。

変数の説明は、関数 summary を使用すると表示されます。

table を作成します。変数の説明を変更します。結果の概要を表示します。

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
T.Properties.VariableDescriptions = {'' '' '' '' ...
                                     'Has the patient ever been a smoker' ...
                                     'Systolic Pressure' 'Diastolic Pressure'};
summary(T)
Variables:

    Gender: 100x1 cell array of character vectors

    Age: 100x1 double

        Values:

            Min       25   
            Median    39   
            Max       50   

    Height: 100x1 double

        Values:

            Min       60      
            Median    67      
            Max       72      

    Weight: 100x1 double

        Values:

            Min         111   
            Median    142.5   
            Max         202   

    Smoker: 100x1 logical

        Description:  Has the patient ever been a smoker
        Values:

            True     34      
            False    66      

    Systolic: 100x1 double

        Description:  Systolic Pressure
        Values:

            Min       109       
            Median    122       
            Max       138       

    Diastolic: 100x1 double

        Description:  Diastolic Pressure
        Values:

            Min         68       
            Median    81.5       
            Max         99       

変数の単位。文字ベクトルの cell 配列として指定します。このプロパティには空の cell 配列を指定できます。これは既定値です。cell 配列が空でない場合、文字ベクトルの数は変数の数と等しくなければなりません。単位がない変数について、cell 配列内に空の文字ベクトルを個別に指定できます。

変数の単位は、関数 summary を使用すると表示されます。

table を作成します。変数の単位を変更します。結果の概要を表示します。

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
T.Properties.VariableUnits = {'' 'Yrs' 'In' 'Lbs' '' 'mm Hg' 'mm Hg'};
summary(T)
Variables:

    Gender: 100x1 cell array of character vectors

    Age: 100x1 double

        Units:  Yrs
        Values:

            Min       25   
            Median    39   
            Max       50   

    Height: 100x1 double

        Units:  In
        Values:

            Min       60      
            Median    67      
            Max       72      

    Weight: 100x1 double

        Units:  Lbs
        Values:

            Min         111   
            Median    142.5   
            Max         202   

    Smoker: 100x1 logical

        Values:

            True     34      
            False    66      

    Systolic: 100x1 double

        Units:  mm Hg
        Values:

            Min       109       
            Median    122       
            Max       138       

    Diastolic: 100x1 double

        Units:  mm Hg
        Values:

            Min         68       
            Median    81.5       
            Max         99       

追加の table 情報。任意のデータ型の情報を含む変数として指定します。

table を作成します。table に関連するユーザー データの一部として無名関数を付加します。

load patients
T = table(Gender,Age,Height,Weight,Smoker,Systolic,Diastolic);
formula = @(x) x.^2;
T.Properties.UserData = formula;
T.Properties
ans = 

  struct with fields:

             Description: ''
                UserData: @(x)x.^2
          DimensionNames: {'Row'  'Variables'}
           VariableNames: {1x7 cell}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}

すべて折りたたむ

同じ数の行をもつ複数のワークスペース変数を定義します。

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

table T をワークスペース変数のコンテナーとして作成します。

T = table(Age,Height,Weight,BloodPressure,...
    'RowNames',LastName)
T=5x4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Smith       38     71        176       124     93   
    Johnson     43     69        163       109     77   
    Williams    38     64        131       125     83   
    Jones       40     67        133       117     75   
    Brown       49     64        119       122     80   

table は、ワークスペース変数名を使用して変数に名前を付けます。

各変数が 3 行を含み、データ型が異なる複数の配列から table を作成します。

T = table(categorical({'M';'F';'M'}),[45;32;34],...
    {'NY';'CA';'MA'},logical([1;0;0]),...
    'VariableNames',{'Gender' 'Age' 'State' 'Vote'})
T=3x4 table
    Gender    Age    State    Vote 
    ______    ___    _____    _____

    M         45     'NY'     true 
    F         32     'CA'     false
    M         34     'MA'     false

Gender は categorical 配列、Age は倍精度配列、State は文字ベクトルの cell 配列、Vote は logical 配列です。関数 summary を使用して、table の変数のデータ型とその他の情報を出力できます。

R2016b 以降では、関数 string を使用して string 配列を作成し、table 変数として string 配列を追加できます。

FlightNum = [1261;547;3489];
Customer = string({'Jones';'Brown';'Smith'});
Date = datetime(2016,12,20:22)';
Rating = categorical({'Good';'Poor';'Fair'});
Comment = string({'Flight left on time, not crowded';...
                  'Late departure, ran out of dinner options';...
                  'Late, but only by half an hour. Otherwise fine.'});
T = table(FlightNum,Customer,Date,Rating,Comment)
T=3x5 table
    FlightNum    Customer       Date        Rating                         Comment                     
    _________    ________    ___________    ______    _________________________________________________

    1261         "Jones"     20-Dec-2016    Good      "Flight left on time, not crowded"               
     547         "Brown"     21-Dec-2016    Poor      "Late departure, ran out of dinner options"      
    3489         "Smith"     22-Dec-2016    Fair      "Late, but only by half an hour. Otherwise fine."

string 配列内のテキストを行名として使用するには、string 配列を文字ベクトルの cell 配列に変換します。次に、行名を含む table を作成します。

Customer = cellstr(Customer);
T = table(FlightNum,Date,Rating,Comment,'RowNames',Customer)
T=3x4 table
             FlightNum       Date        Rating                         Comment                     
             _________    ___________    ______    _________________________________________________

    Jones    1261         20-Dec-2016    Good      "Flight left on time, not crowded"               
    Brown     547         21-Dec-2016    Poor      "Late departure, ran out of dinner options"      
    Smith    3489         22-Dec-2016    Fair      "Late, but only by half an hour. Otherwise fine."

さまざまな日付での 3 か所の地域の総降雪量を含むワークスペース変数を作成します。これらの変数は行ベクトルです。

Date = {'12/25/11','1/2/12','1/23/12','2/7/12','2/15/12'};
location1 = [20 5 13 0 17];
location2 = [18 9 21 5 12];
location3 = [26 10 16 3 15];

これらの変数から table を作成する 1 つの方法は、構文 T = table(Date',location1',location2',location3') で関数 table を呼び出すことです。ワークスペース変数は行ベクトルであるため、それらを転置して table 内に列方向データとして配置しなければなりません。したがって、入力引数は単純な変数ではなく、式になります。結果として、table は既定の変数名 Var1Var2Var3 および Var4 をもつ T を作成します。T の作成後、T.Properties.VariableNames によりわかりやすい名前を割り当てることができます。ただし、空の table を作成し、変数を新しい名前で 1 つずつ追加する方法が便利な場合もあります。

空の table を作成します。ワークスペース変数を転置して、table に列ベクトルとして追加します。各ワークスペース変数を T に割り当てるときに、table 変数にわかりやすい名前を付けます。

T = table;
T.Date = Date';
T.Natick = location1';
T.Boston = location2';
T.Worcester = location3'
T=5x4 table
       Date       Natick    Boston    Worcester
    __________    ______    ______    _________

    '12/25/11'    20        18        26       
    '1/2/12'       5         9        10       
    '1/23/12'     13        21        16       
    '2/7/12'       0         5         3       
    '2/15/12'     17        12        15       

ヒント

  • table を受け入れる関数、または返す関数の一覧については、tableを参照してください。

拡張機能

R2013b で導入

この情報は役に立ちましたか?