테이블 변수의 텍스트를 categorical형으로 변환하기
이 예제에서는 테이블의 변수를 텍스트에서 categorical
형 배열로 변환하는 방법을 보여줍니다. 이 워크플로는 string형 배열인 테이블 변수와 문자형 벡터로 구성된 셀형 배열인 변수에 동일하게 적용됩니다.
샘플 데이터 불러오기 및 테이블 생성
100명의 환자로부터 수집한 샘플 데이터를 불러옵니다.
load patients
Age
, Height
, Weight
, SelfAssessedHealthStatus
, Location
의 환자 데이터를 테이블에 저장합니다. 변수 LastName
의 고유한 식별자를 행 이름으로 사용합니다. 문자형 벡터로 구성된 셀형 배열인 변수를 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형 배열로 테이블 변수를 변환하기
변수 Location
과 SelfAssessedHealthStatus
는 고유한 값으로 구성된 이산 집합을 포함합니다. 변수에 위치나 상태 같이 범주로 간주될 수 있는 값 집합이 포함된 경우 그 값을 categorical
형 변수로 변환해 보십시오.
Location
을 categorical
형 배열로 변환합니다.
T.Location = categorical(T.Location);
변수 SelfAssessedHealthStatus
는 4개의 고유한 값 Excellent
, Fair
, Good
, Poor
를 포함합니다.
범주에 수학적 정렬(Mathematical Ordering) Poor < Fair < Good < Excellent
가 적용되는 순서형 categorical
형 배열로 SelfAssessedHealthStatus
를 변환합니다.
T.SelfAssessedHealthStatus = categorical(T.SelfAssessedHealthStatus,... {'Poor','Fair','Good','Excellent'},'Ordinal',true);
요약 출력하기
테이블을 요약하는 summary
를 사용하여 각 변수에 대한 데이터형, 설명, 단위 및 기타 기술 통계량을 확인합니다.
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
테이블 변수 SelfAssessedHealthStatus
와 Location
은 categorical
형 배열입니다. 요약에는 각 범주에 포함된 요소의 개수가 포함됩니다. 예를 들어, 요약에 100명의 환자 중 11명이 자신의 건강을 Poor로 평가하고 34명이 Excellent로 평가했음이 표시됩니다.
범주를 기반으로 하여 데이터 선택
County General Hospital에서 관찰한 환자 중 자신의 건강을 Excellent로 평가한 모든 환자의 연령, 키, 체중을 포함하는 하위 테이블 T1
을 생성합니다. categorical
형 배열 Location
과 SelfAssessedHealthStatus
에 포함된 값을 기반으로 하여 논리형 벡터를 손쉽게 생성할 수 있습니다.
rows = T.Location=='County General Hospital' & T.SelfAssessedHealthStatus=='Excellent';
rows
는 위치가 County General Hospital이고 환자가 자신의 건강을 Excellent로 평가한 테이블 행에 대해 논리값 true
(1
)를 가지는 100×1 논리형 벡터입니다.
변수의 서브셋을 정의합니다.
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
를 생성합니다.
먼저, 테이블 T2
에 포함시킬 행의 서브셋을 정의합니다.
rows = T.SelfAssessedHealthStatus<='Fair';
그런 다음, 테이블 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
⋮