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

테이블 계산

이 예제에서는 테이블에 대해 계산을 수행하는 방법을 보여줍니다.

함수 rowfunvarfun은 각각 지정된 함수를 테이블에 적용하지만, 대부분의 다른 함수에는 입력 인수로 숫자형 배열 또는 동종 배열이 필요합니다. 점 인덱싱을 사용하여 개별 변수에서 데이터를 추출하거나 중괄호를 사용하여 하나 이상의 변수에서 데이터를 추출할 수 있습니다. 그런 다음, 이렇게 추출된 데이터로 구성된 배열을 다른 함수에 대한 입력값으로 사용할 수 있습니다.

샘플 데이터를 테이블로 읽어오기

readtable 함수를 사용하여 쉼표로 구분된 텍스트 파일 testScores.csv에서 테이블로 데이터를 읽어옵니다. testScores.csv에는 여러 학생의 테스트 점수가 들어 있습니다. 텍스트 파일의 첫 번째 행에 있는 학생 이름을 테이블의 행 이름으로 사용합니다.

T = readtable('testScores.csv','ReadRowNames',true)
T=10×4 table
                 Gender     Test1    Test2    Test3
                ________    _____    _____    _____

    HOWARD      'male'       90       87       93  
    WARD        'male'       87       85       83  
    TORRES      'male'       86       85       88  
    PETERSON    'female'     75       80       72  
    GRAY        'female'     89       86       87  
    RAMIREZ     'female'     96       92       98  
    JAMES       'male'       78       75       77  
    WATSON      'female'     91       94       92  
    BROOKS      'female'     86       83       85  
    KELLY       'male'       79       76       82  

T는 10개 행과 4개 변수를 포함하는 테이블입니다.

테이블 요약

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

summary(T)
Variables:

    Gender: 10x1 cell array of character vectors

    Test1: 10x1 double

        Values:

            Min          75  
            Median     86.5  
            Max          96  

    Test2: 10x1 double

        Values:

            Min         75   
            Median      85   
            Max         94   

    Test3: 10x1 double

        Values:

            Min         72   
            Median      86   
            Max         98   

요약에는 각 테스트에 대한 최소 점수, 중앙값 및 최대 점수가 포함되어 있습니다.

각 행에서 평균 구하기

중괄호 {}를 사용하여 두 번째, 세 번째, 네 번째 변수에서 데이터를 추출한 후 각 행의 평균을 구하고 새 변수 TestAvg에 저장합니다.

T.TestAvg = mean(T{:,2:end},2)
T=10×5 table
                 Gender     Test1    Test2    Test3    TestAvg
                ________    _____    _____    _____    _______

    HOWARD      'male'       90       87       93          90 
    WARD        'male'       87       85       83          85 
    TORRES      'male'       86       85       88      86.333 
    PETERSON    'female'     75       80       72      75.667 
    GRAY        'female'     89       86       87      87.333 
    RAMIREZ     'female'     96       92       98      95.333 
    JAMES       'male'       78       75       77      76.667 
    WATSON      'female'     91       94       92      92.333 
    BROOKS      'female'     86       83       85      84.667 
    KELLY       'male'       79       76       82          79 

또는 변수 이름(T{:,{'Test1','Test2','Test3'}})이나 변수 인덱스(T{:,2:4})를 사용하여 데이터 서브셋을 선택할 수 있습니다.

그룹화 변수를 사용하여 통계량 계산하기

학생의 성별에 따라 TestAvg의 평균과 최댓값을 계산합니다.

varfun(@mean,T,'InputVariables','TestAvg',...
       'GroupingVariables','Gender')
ans=2×3 table
     Gender     GroupCount    mean_TestAvg
    ________    __________    ____________

    'female'        5            87.067   
    'male'          5              83.4   

데이터 값 바꾸기

각 테스트의 최대 점수는 100입니다. 중괄호를 사용하여 테이블에서 데이터를 추출한 후 테스트 점수를 25점 스케일로 변환합니다.

T{:,2:end} = T{:,2:end}*25/100
T=10×5 table
                 Gender     Test1    Test2    Test3    TestAvg
                ________    _____    _____    _____    _______

    HOWARD      'male'       22.5    21.75    23.25      22.5 
    WARD        'male'      21.75    21.25    20.75     21.25 
    TORRES      'male'       21.5    21.25       22    21.583 
    PETERSON    'female'    18.75       20       18    18.917 
    GRAY        'female'    22.25     21.5    21.75    21.833 
    RAMIREZ     'female'       24       23     24.5    23.833 
    JAMES       'male'       19.5    18.75    19.25    19.167 
    WATSON      'female'    22.75     23.5       23    23.083 
    BROOKS      'female'     21.5    20.75    21.25    21.167 
    KELLY       'male'      19.75       19     20.5     19.75 

변수 이름 변경하기

변수 이름을 TestAvg에서 Final로 변경합니다.

T.Properties.VariableNames{end} = 'Final'
T=10×5 table
                 Gender     Test1    Test2    Test3    Final 
                ________    _____    _____    _____    ______

    HOWARD      'male'       22.5    21.75    23.25      22.5
    WARD        'male'      21.75    21.25    20.75     21.25
    TORRES      'male'       21.5    21.25       22    21.583
    PETERSON    'female'    18.75       20       18    18.917
    GRAY        'female'    22.25     21.5    21.75    21.833
    RAMIREZ     'female'       24       23     24.5    23.833
    JAMES       'male'       19.5    18.75    19.25    19.167
    WATSON      'female'    22.75     23.5       23    23.083
    BROOKS      'female'     21.5    20.75    21.25    21.167
    KELLY       'male'      19.75       19     20.5     19.75

참고 항목

| | | | |

관련 항목