이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
테이블 계산
이 예제에서는 테이블에 대해 계산을 수행하는 방법을 보여줍니다.
함수 rowfun
및 varfun
은 각각 지정된 함수를 테이블에 적용하지만, 대부분의 다른 함수에는 입력 인수로 숫자형 배열 또는 동종 배열이 필요합니다. 점 인덱싱을 사용하여 개별 변수에서 데이터를 추출하거나 중괄호를 사용하여 하나 이상의 변수에서 데이터를 추출할 수 있습니다. 그런 다음, 이렇게 추출된 데이터로 구성된 배열을 다른 함수에 대한 입력값으로 사용할 수 있습니다. R2018a부터는 groupsummary
함수를 사용하여 테이블의 데이터 그룹에 대한 계산을 수행할 수도 있습니다.
샘플 데이터를 테이블로 읽어오기
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
함수를 사용하여 평균을 계산합니다.
varfun(@mean,T,'InputVariables','TestAvg',... 'GroupingVariables','Gender')
ans=2×3 table
Gender GroupCount mean_TestAvg
__________ __________ ____________
{'female'} 5 87.067
{'male' } 5 83.4
R2018a부터는 groupsummary
함수를 사용하여 테이블의 데이터 그룹에 대한 계산을 수행할 수도 있습니다. groupsummary
를 사용하여 각 학생 그룹에 대해 TestAvg
의 최댓값을 계산합니다.
groupsummary(T,'Gender','max','TestAvg')
ans=2×3 table
Gender GroupCount max_TestAvg
__________ __________ ___________
{'female'} 5 95.333
{'male' } 5 90
데이터 값 바꾸기
각 테스트의 최대 점수는 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
참고 항목
table
| summary
| rowfun
| varfun
| findgroups
| splitapply
| groupsummary