이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

테이블 데이터에 액세스하기

테이블의 요소를 참조하는 방법

테이블은 동일한 개수의 행을 갖는 열 방향 변수를 저장할 수 있는 컨테이너입니다. 괄호를 사용하여 테이블에서 데이터 서브셋을 선택하고 테이블 컨테이너를 유지할 수 있습니다. 중괄호와 점 인덱싱을 사용하여 테이블에서 데이터를 추출할 수 있습니다.

중괄호를 사용하는 경우, 지정된 행만 포함하는 지정된 테이블 변수들을 가로 결합한 배열이 결과로 생성됩니다. 지정된 모든 변수에 대한 데이터형은 결합이 가능해야 합니다. 그래야 MATLAB® 함수를 사용하여 계산을 수행할 수 있습니다.

점 인덱싱은 하나의 테이블 변수에서 데이터를 추출합니다. 그 결과, 추출된 변수와 동일한 데이터형의 배열이 생성됩니다. 괄호와 함께 점 인덱싱을 사용하여 변수에서 추출할 행의 서브셋을 지정할 수 있습니다.

T.Variables는 모든 테이블 변수를 배열로 가로로 결합합니다. T.VariablesT{:,:}와 동일합니다.

테이블에 첨자를 사용하고 지정된 유형의 변수를 선택하려면 vartype 함수를 사용하십시오.

테이블 인덱싱 방법 요약

테이블 T가 있다고 가정해 보겠습니다.

인덱싱 유형결과구문변수
괄호테이블T(rows,vars)

하나 이상의 행(rows로 지정됨)

하나 이상의 변수(vars로 지정됨)

중괄호추출된 데이터T{rows,vars}

하나 이상의 행(rows로 지정됨)

하나 이상의 변수(vars로 지정됨)

점 인덱싱추출된 데이터

T.var

T.(varindex)

모든 행

하나의 변수(var(이름) 또는 varindex(숫자)로 지정됨)

점 인덱싱추출된 데이터

T.var(rows)

하나 이상의 행(rows로 지정됨)

하나의 변수(var(이름)로 지정됨)

변수 속성추출된 데이터

T.Variables

모든 행

하나의 배열로 가로 결합할 수 있을 때의 모든 변수

변수 유형별 첨자테이블

S = vartype(type);

T(rows,S)

하나 이상의 행(rows로 지정됨)

지정된 type(예: 'numeric')의 하나 이상의 변수

변수 유형별 첨자추출된 데이터

S = vartype(type);

T{rows,S}

하나 이상의 행(rows로 지정됨)

지정된 type(예: 'numeric')의 하나 이상의 변수

액세스할 행을 지정하는 방법

괄호, 중괄호 또는 점 인덱싱을 사용하여 테이블의 요소를 참조하는 경우 콜론, 숫자형 인덱스 또는 논리식으로 rows를 지정할 수 있습니다. 또한, 단일 행 이름 또는 행 이름으로 구성된 셀형 배열을 사용하여 이름을 기준으로 인덱싱할 수도 있습니다.

논리식은 중괄호 또는 점 인덱싱을 포함할 수 있으며, 여기에 데이터를 추출할 행의 서브셋을 정의할 수 있습니다. 예를 들어, rows = T.Var2>0은 변수 Var2의 값이 0보다 큰 행에 대해 논리값 true(1)를 가진 논리형 배열을 반환합니다.

액세스할 변수를 지정하는 방법

괄호나 중괄호를 사용하여 테이블의 요소를 참조하는 경우 콜론, 숫자 인덱스, 논리식, 단일 변수 이름, 변수 이름으로 구성된 셀형 배열 중 하나로, 또는 vartype 함수의 출력값으로 vars를 지정할 수 있습니다.

점 인덱싱을 사용할 때는 액세스할 하나의 변수를 지정해야 합니다. 단일 변수 이름에는 T.var을 사용합니다. 양의 정수로 지정된 단일 변수 인덱스에는 T.(varindex)를 사용합니다.

테이블의 서브셋으로 새로 테이블 생성하기

이 예제에서는 테이블의 서브셋으로 새로운 테이블을 생성하는 방법을 보여줍니다.

샘플 데이터 불러오기

샘플 환자 데이터를 불러오고 테이블을 생성합니다. LastName의 고유 식별자를 행 이름으로 사용합니다.

load patients

patients = table(Age,Gender,Height,Weight,Smoker,...
    'RowNames',LastName);

테이블 patients에는 100개 행과 5개 변수가 있습니다.

테이블을 요약하는 summary를 사용하여 각 변수에 대한 데이터형, 설명, 단위 및 기타 기술 통계량을 확인합니다.

summary(patients)
Variables:

    Age: 100x1 double

        Values:

            Min        25  
            Median     39  
            Max        50  

    Gender: 100x1 cell array of character vectors

    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   

숫자형 인덱스를 사용한 인덱싱

테이블 patients에서 처음 5개 행과 모든 변수를 포함하는 하위 테이블을 생성합니다. 괄호 안에 숫자형 인덱싱을 사용하여 원하는 행과 변수를 지정합니다. 이는 숫자형 배열에 대한 인덱싱과 유사합니다.

T1 = patients(1:5,:)
T1=5×5 table
                Age     Gender     Height    Weight    Smoker
                ___    ________    ______    ______    ______

    Smith       38     'Male'        71       176      true  
    Johnson     43     'Male'        69       163      false 
    Williams    38     'Female'      64       131      false 
    Jones       40     'Female'      67       133      false 
    Brown       49     'Female'      64       119      false 

T1은 5x5 테이블입니다. 괄호 안에는 숫자형 인덱스 외에도 행 이름이나 변수 이름을 사용할 수 있습니다. 이 경우, 행 인덱스와 콜론을 사용하는 것이 행 이름이나 변수 이름을 사용하는 것보다 더 간단합니다.

이름을 사용한 인덱싱

성이 'Adams' 또는 'Brown'인 환자에 대한 데이터를 모두 선택합니다. 이 경우, 행 이름을 사용하는 것이 숫자형 인덱스를 사용하는 것보다 더 간단합니다.

T2 = patients({'Adams','Brown'},:)
T2=2×5 table
             Age     Gender     Height    Weight    Smoker
             ___    ________    ______    ______    ______

    Adams    48     'Female'      66       137      false 
    Brown    49     'Female'      64       119      false 

T2는 2x5 테이블입니다.

논리식을 사용한 인덱싱

30세 미만의 환자에 대한 성별, 키, 체중을 포함하는 새 테이블 T3을 생성합니다. 변수 Age의 값이 30보다 작은 행만 선택합니다.

점 표기법을 사용하여 테이블 변수에서 데이터를 추출한 후, 논리식을 사용하여 추출된 데이터를 기반으로 행의 서브셋을 정의합니다.

rows = patients.Age<30;
vars = {'Gender','Height','Weight'};

rows는 변수 Age의 값이 30보다 작은 행에 대해 논리값 true(1)를 포함하는 100x1 논리형 배열입니다.

괄호를 사용하여 원하는 데이터 서브셋을 포함하는 테이블을 반환합니다.

T3 = patients(rows,vars)
T3=15×3 table
                  Gender     Height    Weight
                 ________    ______    ______

    Moore        'Male'        68       183  
    Jackson      'Male'        71       174  
    Garcia       'Female'      69       131  
    Walker       'Female'      65       123  
    Hall         'Male'        70       189  
    Young        'Female'      63       114  
    Hill         'Female'      64       138  
    Rivera       'Female'      63       130  
    Cooper       'Female'      65       127  
    Cox          'Female'      66       111  
    Howard       'Female'      68       134  
    James        'Male'        66       186  
    Jenkins      'Male'        69       189  
    Perry        'Female'      64       120  
    Alexander    'Male'        69       171  

T3은 15x3 테이블입니다.

테이블 내용으로 배열 생성하기

이 예제에서는 중괄호 또는 점 인덱싱을 사용하여 테이블의 내용을 추출하는 방법을 보여줍니다.

샘플 데이터 불러오기

샘플 환자 데이터를 불러오고 테이블을 생성합니다. LastName의 고유 식별자를 행 이름으로 사용합니다.

load patients

patients = table(Age,Gender,Height,Weight,Smoker,...
    'RowNames',LastName);

테이블 patients에는 100개 행과 5개 변수가 있습니다.

여러 행과 여러 변수 추출

중괄호를 사용하여 테이블 patients의 여러 변수에서 데이터를 추출합니다. 점 인덱싱은 한 번에 하나의 변수에서만 데이터를 추출하므로 둘 이상의 변수를 추출해야 할 경우 중괄호를 사용하는 것이 더 편리합니다.

처음 5명의 환자에 대한 키와 체중을 추출합니다. 숫자형 인덱스를 사용하여 행의 서브셋 1:5를 선택하고 변수 이름을 사용하여 변수의 서브셋 {Height,Weight}를 선택합니다.

A = patients{1:5,{'Height','Weight'}}
A = 5×2

    71   176
    69   163
    64   131
    67   133
    64   119

A는 5x2 숫자형 배열입니다.

하나의 변수에서 데이터 추출

단일 변수의 내용을 손쉽게 추출하려면 점 인덱싱을 사용하십시오. 변수 Weight의 숫자형 데이터에 대한 히스토그램을 플로팅합니다.

figure()
histogram(patients.Weight)
title(' Patient Weight')

patients.Weight는 100개 행으로 구성된 배정밀도 열 벡터입니다. 또는 patients{:,'Weight'}와 같이 중괄호를 사용하여 변수 Weight의 모든 행을 추출할 수 있습니다.

단일 변수에 대한 행의 서브셋을 지정하려는 경우 괄호 또는 중괄호와 함께 점 인덱싱을 사용할 수 있습니다. 30세 미만의 비흡연 환자에 대한 키를 추출합니다.

점 표기법을 사용하여 테이블 변수에서 데이터를 추출한 후, 논리식을 사용하여 추출된 데이터를 기반으로 행의 서브셋을 정의합니다.

rows = patients.Smoker==false & patients.Age<30;

점 표기법을 사용하여 변수 Height에서 원하는 행을 추출합니다.

patients.Height(rows)
ans = 11×1

    68
    71
    70
    63
    64
    63
    65
    66
    68
    66
      ⋮

출력값은 11x1 숫자형 배열입니다. 또는 중괄호 안에 단일 변수 Height를 지정하여 원하는 데이터 patients{rows,'Height'}를 추출할 수 있습니다.

참고 항목

| |

관련 예제

세부 정보