table 変数内のテキストの categorical への変換
この例では、table の変数をテキストから categorical
配列に変換する方法を示します。同じワークフローを、string 配列である table 変数、および文字ベクトルの cell 配列である変数に適用します。
サンプル データの読み込みとテーブルの作成
100 名の患者から収集されたサンプル データを読み込みます。
load patients
Age
、Height
、Weight
、SelfAssessedHealthStatus
および 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
に変換することを検討してください。
Location
を categorical
配列に変換します。
T.Location = categorical(T.Location);
変数 SelfAssessedHealthStatus
には、次の 4 つの一意な値が含まれています。Excellent
、Fair
、Good
、Poor
です。
カテゴリに数学的な順序 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
および Location
は categorical
配列です。概要には各カテゴリの要素数が含まれています。たとえば、この概要からわかるのは、100 名の患者のうち 11 名が自分の健康状態を Poor と申告し、34 名が Excellent と申告していることです。
カテゴリに基づくデータの選択
County General Hospital で調査され、自分の健康状態を Excellent と申告しているすべての患者の年齢、身長および体重を含むサブテーブル T1
を作成します。categorical
配列 Location
と SelfAssessedHealthStatus
内の値に基づいて 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
⋮