Main Content

테이블 변수의 텍스트를 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형 배열로 테이블 변수를 변환하기

변수 LocationSelfAssessedHealthStatus는 고유한 값으로 구성된 이산 집합을 포함합니다. 변수에 위치나 상태 같이 범주로 간주될 수 있는 값 집합이 포함된 경우 그 값을 categorical형 변수로 변환해 보십시오.

Locationcategorical형 배열로 변환합니다.

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   

테이블 변수 SelfAssessedHealthStatusLocationcategorical형 배열입니다. 요약에는 각 범주에 포함된 요소의 개수가 포함됩니다. 예를 들어, 요약에 100명의 환자 중 11명이 자신의 건강을 Poor로 평가하고 34명이 Excellent로 평가했음이 표시됩니다.

범주를 기반으로 하여 데이터 선택

County General Hospital에서 관찰한 환자 중 자신의 건강을 Excellent로 평가한 모든 환자의 연령, 키, 체중을 포함하는 하위 테이블 T1을 생성합니다. categorical형 배열 LocationSelfAssessedHealthStatus에 포함된 값을 기반으로 하여 논리형 벡터를 손쉽게 생성할 수 있습니다.

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  
      ⋮

관련 예제

세부 정보