Main Content

table 変数内のテキストの categorical への変換

この例では、table の変数をテキストから categorical 配列に変換する方法を示します。同じワークフローを、string 配列である table 変数、および文字ベクトルの cell 配列である変数に適用します。

サンプル データの読み込みとテーブルの作成

100 名の患者から収集されたサンプル データを読み込みます。

load patients

AgeHeightWeightSelfAssessedHealthStatus および Location の患者データを table に保存します。変数 LastName の一意の識別子を行名として使用します。文字ベクトルの cell 配列である変数を string 配列に変換するには、関数 convertvars を使用します。

T = table(Age,Height,Weight,Smoker,...
          SelfAssessedHealthStatus,Location,...
          'RowNames',LastName);
T = convertvars(T,@iscellstr,"string")
T=100×6 table
                Age    Height    Weight    Smoker    SelfAssessedHealthStatus             Location          
                ___    ______    ______    ______    ________________________    ___________________________

    Smith       38       71       176      true            "Excellent"           "County General Hospital"  
    Johnson     43       69       163      false           "Fair"                "VA Hospital"              
    Williams    38       64       131      false           "Good"                "St. Mary's Medical Center"
    Jones       40       67       133      false           "Fair"                "VA Hospital"              
    Brown       49       64       119      false           "Good"                "County General Hospital"  
    Davis       46       68       142      false           "Good"                "St. Mary's Medical Center"
    Miller      33       64       142      true            "Good"                "VA Hospital"              
    Wilson      40       68       180      false           "Good"                "VA Hospital"              
    Moore       28       68       183      false           "Excellent"           "St. Mary's Medical Center"
    Taylor      31       66       132      false           "Excellent"           "County General Hospital"  
    Anderson    45       68       128      false           "Excellent"           "County General Hospital"  
    Thomas      42       66       137      false           "Poor"                "St. Mary's Medical Center"
    Jackson     25       71       174      false           "Poor"                "VA Hospital"              
    White       39       72       202      true            "Excellent"           "VA Hospital"              
    Harris      36       65       129      false           "Good"                "St. Mary's Medical Center"
    Martin      48       71       181      true            "Good"                "VA Hospital"              
      ⋮

テキストから categorical 配列への table 変数の変換

変数 Location および SelfAssessedHealthStatus には、一意の値の離散集合が含まれます。変数に、位置やステータスなどカテゴリと見なすことができる値の集合が含まれている場合は、それを変数 categorical に変換することを検討してください。

Locationcategorical 配列に変換します。

T.Location = categorical(T.Location);

変数 SelfAssessedHealthStatus には、次の 4 つの一意な値が含まれています。ExcellentFairGoodPoor です。

カテゴリに数学的な順序 Poor < Fair < Good < Excellent が付くように、SelfAssessedHealthStatus を順序 categorical 配列に変換します。

T.SelfAssessedHealthStatus = categorical(T.SelfAssessedHealthStatus,...
    {'Poor','Fair','Good','Excellent'},'Ordinal',true);

概要の出力

summary を使用して、各変数のデータ型、説明、単位およびその他の記述統計を table にまとめます。

format compact

summary(T)
Variables:
    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
        Values:
            True        34   
            False       66   
    SelfAssessedHealthStatus: 100x1 ordinal categorical
        Values:
            Poor            11   
            Fair            15   
            Good            40   
            Excellent       34   
    Location: 100x1 categorical
        Values:
            County General Hospital         39   
            St. Mary s Medical Center       24   
            VA Hospital                     37   

table 変数 SelfAssessedHealthStatus および Locationcategorical 配列です。概要には各カテゴリの要素数が含まれています。たとえば、この概要からわかるのは、100 名の患者のうち 11 名が自分の健康状態を Poor と申告し、34 名が Excellent と申告していることです。

カテゴリに基づくデータの選択

County General Hospital で調査され、自分の健康状態を Excellent と申告しているすべての患者の年齢、身長および体重を含むサブテーブル T1 を作成します。categorical 配列 LocationSelfAssessedHealthStatus 内の値に基づいて logical ベクトルを簡単に作成することができます。

rows = T.Location=='County General Hospital' & T.SelfAssessedHealthStatus=='Excellent';

rows は、場所が County General Hospital で、患者が自分の健康状態を Excellent と申告している table 行について logical true (1) を持つ、100 行 1 列の logical ベクトルです。

変数のサブセットを定義します。

vars = ["Age","Height","Weight"];

小かっこを使用してサブテーブル T1 を作成します。

T1 = T(rows,vars)
T1=13×3 table
                  Age    Height    Weight
                  ___    ______    ______
    Smith         38       71       176  
    Taylor        31       66       132  
    Anderson      45       68       128  
    King          30       67       186  
    Edwards       42       70       158  
    Rivera        29       63       130  
    Richardson    30       67       141  
    Torres        45       70       137  
    Peterson      32       60       136  
    Ramirez       48       64       137  
    Barnes        42       66       194  
    Butler        38       68       184  
    Bryant        48       66       134  

順序 categorical 配列ではカテゴリに数学的な順序が付けられているため、「より大きい」や「より小さい」などの関係演算子を使用して配列を要素単位で比較することができます。

自分の健康状態を Poor または Fair と申告しているすべての患者の年齢、身長、および体重のサブテーブル T2 を作成します。

最初に、table T2 に含める行のサブセットを定義します。

rows = T.SelfAssessedHealthStatus<='Fair';

次に、table T2 に含める変数のサブセットを定義します。

vars = ["Age","Height","Weight"];

小かっこを使用してサブテーブル T2 を作成します。

T2 = T(rows,vars)
T2=26×3 table
                 Age    Height    Weight
                 ___    ______    ______
    Johnson      43       69       163  
    Jones        40       67       133  
    Thomas       42       66       137  
    Jackson      25       71       174  
    Garcia       27       69       131  
    Rodriguez    39       64       117  
    Lewis        41       62       137  
    Lee          44       66       146  
    Hall         25       70       189  
    Hernandez    36       68       166  
    Lopez        40       66       137  
    Gonzalez     35       66       118  
    Mitchell     39       71       164  
    Campbell     37       65       135  
    Parker       30       68       182  
    Stewart      49       68       170  
      ⋮

関連する例

詳細