groupsummary

그룹 요약 계산

설명

예제

G = groupsummary(T,groupvars)는 테이블 또는 타임테이블 T에 있는 데이터에 대해 그룹과 각 그룹의 요소 개수를 구하여 테이블로 반환합니다. groupvars에 지정된 그룹화 변수의 그룹이 겹치지 않게 포함됩니다. 예를 들어, G = groupsummary(T,'Gender')는 변수 GenderMale 요소 개수와 Female 요소 개수를 반환합니다.

예제

G = groupsummary(T,groupvars,method)method로 지정된 계산 결과도 반환합니다. 예를 들어, G = groupsummary(T,'Gender','median')은 male 요소의 개수와 female 요소의 개수 이외에도 양 성별에 대한 T의 모든 비그룹화 변수의 중앙값도 반환합니다.

예제

G = groupsummary(T,groupvars,method,datavars)는 계산을 적용할 변수를 지정합니다.

G = groupsummary(T,groupvars,groupbins)groupvars에서 데이터를 비닝하는 방법을 지정합니다. 예를 들어, G = groupsummary(T,'SaleDate','year')는 그룹화 변수 SaleDate에 따라 T에서 각 연도의 모든 판매에 대한 그룹별 도수를 제공합니다.

G = groupsummary(T,groupvars,groupbins,method)method로 지정된 계산을 적용할 데이터를 groupbins에 따라 비닝합니다.

예제

G = groupsummary(T,groupvars,groupbins,method,datavars)groupbins에 따라 데이터를 비닝하고 계산을 적용할 변수를 지정합니다.

예제

G = groupsummary(___,Name,Value)는 위에 열거된 구문에서 하나 이상의 이름-값 쌍을 사용하여 추가적인 그룹화 속성을 지정합니다. 예를 들어, G = groupsummary(T,'Category1','IncludeMissingGroups',false)<undefined>로 표시되는 누락된 categorical형 데이터에서 만들어진 그룹을 제외합니다.

B = groupsummary(A,groupvars,method)A가 벡터 또는 행렬인 경우 groupvars에 지정된 그룹화 벡터의 고유한 조합에 따라 계산 결과를 반환합니다. groupvars는 열 벡터, 행렬 또는 열 벡터로 구성된 셀형 배열일 수 있습니다.

예제

B = groupsummary(A,groupvars,groupbins,method)groupbins에 따라 데이터를 비닝합니다.

예제

B = groupsummary(___,Name,Value)는 위에 열거된 모든 배열 구문에서 하나 이상의 이름-값 쌍을 사용하여 추가적인 그룹화 속성을 지정합니다.

[B,BG] = groupsummary(A,___)는 각 그룹화 벡터에 대한 그룹도 반환합니다.

예제

[B,BG,BC] = groupsummary(A,___)는 각 그룹에 대한 그룹 개수도 반환합니다.

예제

모두 축소

테이블 변수에 대해 요약 통계량을 계산합니다.

5명의 개인에 대한 정보가 들어 있는 테이블 T를 생성합니다.

Gender = ["male";"female";"female";"male";"male"];
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
T = table(Gender,Age,Height,Weight)
T=5×4 table
     Gender     Age    Height    Weight
    ________    ___    ______    ______

    "male"      38       71       176  
    "female"    43       69       163  
    "female"    38       64       131  
    "male"      40       67       133  
    "male"      49       64       119  

'Gender'를 그룹화 변수로 지정하여 남성과 여성의 도수를 계산합니다.

G = groupsummary(T,'Gender')
G=2×2 table
     Gender     GroupCount
    ________    __________

    "female"        2     
    "male"          3     

여성과 남성의 평균 연령, 신장, 체중을 각각 계산합니다.

G = groupsummary(T,'Gender','mean')
G=2×5 table
     Gender     GroupCount    mean_Age    mean_Height    mean_Weight
    ________    __________    ________    ___________    ___________

    "female"        2            40.5         66.5            147   
    "male"          3          42.333       67.333         142.67   

여전히 성별로 그룹화한 상태에서 여성과 남성의 중앙값 신장만 각각 계산합니다.

G = groupsummary(T,'Gender','median','Height')
G=2×3 table
     Gender     GroupCount    median_Height
    ________    __________    _____________

    "female"        2             66.5     
    "male"          3               67     

2개의 그룹화 변수를 사용하여 테이블 데이터를 그룹화합니다.

5명의 개인에 대한 정보가 들어 있는 테이블 T를 생성합니다.

Gender = ["male";"female";"male";"female";"male"];
Smoker = logical([1;0;1;0;1]);
Weight = [176;163;131;133;119];
T = table(Gender,Smoker,Weight)
T=5×3 table
     Gender     Smoker    Weight
    ________    ______    ______

    "male"      true       176  
    "female"    false      163  
    "male"      true       131  
    "female"    false      133  
    "male"      true       119  

성별과 흡연 여부로 그룹화하여 평균 체중을 계산합니다. 여기서 성별과 흡연 여부의 2가지 조합은 빈 그룹이므로 기본적으로 출력값에 표시되지 않습니다.

G = groupsummary(T,{'Gender','Smoker'},'mean','Weight')
G=2×4 table
     Gender     Smoker    GroupCount    mean_Weight
    ________    ______    __________    ___________

    "female"    false         2             148    
    "male"      true          3             142    

'IncludeEmptyGroups' 파라미터 값을 true로 설정하여 빈 그룹을 포함한 모든 그룹 조합을 표시합니다.

G = groupsummary(T,{'Gender','Smoker'},'mean','Weight','IncludeEmptyGroups',true)
G=4×4 table
     Gender     Smoker    GroupCount    mean_Weight
    ________    ______    __________    ___________

    "female"    false         2             148    
    "female"    true          0             NaN    
    "male"      false         0             NaN    
    "male"      true          3             142    

지정된 빈에 따른 그룹 데이터입니다.

하나의 달에 포함된 여러 날짜의 판매량 정보가 들어 있는 타임테이블을 생성합니다.

TimeStamps = datetime([2017 3 4; 2017 3 2; 2017 3 15; 2017 3 10;...
                       2017 3 14; 2017 3 31; 2017 3 25;...
                       2017 3 29; 2017 3 21; 2017 3 18]);
Profit = [2032 3071 1185 2587 1998 2899 3112 909 2619 3085]';
TotalItemsSold = [14 13 8 5 10 16 8 6 7 11]';
TT = timetable(TimeStamps,Profit,TotalItemsSold)
TT=10×2 timetable
    TimeStamps     Profit    TotalItemsSold
    ___________    ______    ______________

    04-Mar-2017     2032           14      
    02-Mar-2017     3071           13      
    15-Mar-2017     1185            8      
    10-Mar-2017     2587            5      
    14-Mar-2017     1998           10      
    31-Mar-2017     2899           16      
    25-Mar-2017     3112            8      
    29-Mar-2017      909            6      
    21-Mar-2017     2619            7      
    18-Mar-2017     3085           11      

판매된 총 아이템의 개수를 일정 간격으로 비닝하여 그룹화하고, 각 그룹별 평균 수익을 계산합니다.

format shorte
G = groupsummary(TT,'TotalItemsSold',[0 4 8 12 16],'mean','Profit')
G=3×3 table
    disc_TotalItemsSold    GroupCount    mean_Profit
    ___________________    __________    ___________

         [4, 8)            3.0000e+00    2.0383e+03 
         [8, 12)           4.0000e+00    2.3450e+03 
         [12, 16]          3.0000e+00    2.6673e+03 

요일별 평균 수익을 계산합니다.

G = groupsummary(TT,'TimeStamps','dayname','mean','Profit')
G=5×3 table
    dayname_TimeStamps    GroupCount    mean_Profit
    __________________    __________    ___________

        Tuesday           2.0000e+00    2.3085e+03 
        Wednesday         2.0000e+00    1.0470e+03 
        Thursday          1.0000e+00    3.0710e+03 
        Friday            2.0000e+00    2.7430e+03 
        Saturday          3.0000e+00    2.7430e+03 

날짜로 구성된 벡터와 이에 대응하는 수익값으로 구성된 벡터를 만듭니다.

timeStamps = datetime([2017 3 4; 2017 3 2; 2017 3 15; 2017 3 10; ...
                       2017 3 14; 2017 3 31; 2017 3 25; ...
                       2017 3 29; 2017 3 21; 2017 3 18]);
profit = [2032 3071 1185 2587 1998 2899 3112 909 2619 3085]';

요일별 평균 수익을 계산합니다. 각 그룹의 평균, 그룹 이름, 구성원 수를 표시합니다.

format shorte
[meanDailyProfit,dayOfWeek,dailyCounts] = groupsummary(profit,timeStamps,'dayname','mean')
meanDailyProfit = 5×1

   2.3085e+03
   1.0470e+03
   3.0710e+03
   2.7430e+03
   2.7430e+03

dayOfWeek = 5x1 categorical array
     Tuesday 
     Wednesday 
     Thursday 
     Friday 
     Saturday 

dailyCounts = 5×1

     2
     2
     1
     2
     3

성별과 흡연 상태에 따라 4개 그룹의 평균 체중을 계산합니다.

환자 정보를 서로 다른 유형의 벡터 3개로 저장합니다.

Gender = ["male";"female";"male";"female";"male"];
Smoker = logical([1;0;1;0;1]);
Weight = [176;163;131;133;119];

성별과 흡연 상태에 따라 평균 체중을 계산합니다. B는 각 그룹의 평균을 포함합니다(빈 그룹의 경우 NaN). BG는 그룹의 요소를 행별로 관찰했을 때 각 그룹을 설명하는 2개의 벡터를 포함하는 셀형 배열입니다. 예를 들어, BG{1}의 첫 번째 행을 보면 첫 번째 그룹이 여성임을 알 수 있고, BG{2}의 첫 번째 행을 보면 이들이 비흡연자임을 알 수 있습니다. 마지막으로, BCBG의 대응하는 그룹에 대한 각 그룹의 구성원 수를 포함합니다.

[B,BG,BC] = groupsummary(Weight,{Gender,Smoker},'mean','IncludeEmptyGroups',true);
B
B = 4×1

   148
   NaN
   NaN
   142

BG{1}
ans = 4x1 string array
    "female"
    "female"
    "male"
    "male"

BG{2}
ans = 4x1 logical array

   0
   1
   0
   1

BC
BC = 4×1

     2
     0
     0
     3

입력 인수

모두 축소

입력 데이터로, table형 또는 timetable형으로 지정됩니다.

입력 배열로, 벡터나 행렬로 지정됩니다.

그룹화 변수 또는 벡터로, 스칼라, 벡터, 행렬, 셀형 배열 또는 함수 핸들로 지정됩니다.

table형 또는 timetable형 입력 데이터의 경우 groupvars는 어느 열을 사용하여 그룹을 계산할지 나타내며, 다음 중 하나일 수 있습니다.

  • 단일 테이블 변수 이름을 지정하는 문자형 벡터 또는 string형 스칼라

  • 각 요소가 테이블 변수 이름인, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열

  • 테이블 변수 인덱스로 구성된 벡터

  • 각각의 요소가 테이블 변수에 해당하는 논리형 벡터. 여기서 true는 해당하는 변수를 포함하고 false는 해당하는 변수를 제외합니다.

  • 테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들

입력값이 배열인 경우 groupvarsA와 행 개수가 같은 열 벡터이거나 열 벡터로 구성된 행렬 또는 셀형 배열일 수 있습니다.

예: 'Age'

예: {'Height','Weight'}

계산 방법으로, 다음 중 하나로 지정됩니다.

  • 'sum' — 합계

  • 'mean' — 평균

  • 'median' — 중앙값

  • 'mode' — 최빈값

  • 'var' — 분산

  • 'std' — 표준편차

  • 'min' — 최솟값

  • 'max' — 최댓값

  • 'range' — 최댓값에서 최솟값을 뺀 값

  • 'nummissing' — 누락된 요소의 개수

  • 'nnz' — 0이 아닌 요소와 NaN이 아닌 요소의 개수

  • 'all' — 위에 나열된 모든 계산 결과

첫 번째 차원의 길이가 1인 그룹마다 한 개의 개체를 반환하는 함수 핸들도 지정할 수 있습니다. 한 번에 여러 개의 계산을 지정하려면 옵션을 셀형 배열에 나열하십시오(예: {'mean','median'}).

table형 또는 timetable형 입력값의 데이터 변수로, 스칼라, 벡터, 셀형 배열 또는 함수 핸들로 지정됩니다. datavars는 입력 테이블의 어떤 변수에 방법을 적용할지 나타내며, 다음 옵션 중 하나일 수 있습니다.

  • 단일 테이블 변수 이름을 지정하는 문자형 벡터 또는 string형 스칼라

  • 각 요소가 테이블 변수 이름인, 문자형 벡터 또는 string형 배열로 구성된 셀형 배열

  • 테이블 변수 인덱스로 구성된 벡터

  • 각각의 요소가 테이블 변수에 해당하는 논리형 벡터. 여기서 true는 해당하는 변수를 포함하고 false는 해당하는 변수를 제외합니다.

  • 테이블 변수를 입력값으로 받고 논리형 스칼라를 반환하는 함수 핸들

datavars가 지정되지 않은 경우, groupsummary는 각 비그룹화 변수에 계산을 적용합니다.

예: 'Profit'

예: {'Income','Expenses'}

예: @isnumeric

비닝 방식으로, 다음 옵션 중 하나로 지정됩니다.

  • 'none', 즉 비닝하지 않음

  • datetime 그룹화 변수 또는 벡터에 대해 datetime형 벡터 또는 숫자형 벡터로 지정된 Bin 경계값 목록

  • 정수 스칼라로 지정된 Bin의 개수

  • duration 또는 calendarDuration 유형의 스칼라로 지정된, Bin 너비를 나타내는 지속 시간(datetime 또는 duration 그룹화 변수 또는 벡터에만 해당)

  • 다음 문자형 벡터 중 하나로 지정된 시간 Bin(datetimeduration 그룹화 변수 또는 벡터에만 해당)

    설명데이터형
    'second'

    각 Bin은 1초입니다.

    datetimeduration
    'minute'

    각 Bin은 1분입니다.

    datetimeduration
    'hour'

    각 Bin은 1시간입니다.

    datetimeduration
    'day'

    각 Bin은 달력상의 1일입니다. 이 값은 일광 절약 시간제 변동을 고려합니다.

    datetimeduration
    'week'각 Bin은 달력상의 1주일입니다.datetime
    'month'각 Bin은 달력상의 1개월입니다.datetime
    'quarter'각 Bin은 달력상의 1사분기입니다.datetime
    'year'

    각 Bin은 달력상의 1년입니다. 이 값은 윤일을 고려합니다.

    datetimeduration
    'decade'각 Bin은 10년(달력상의 10년)입니다.datetime
    'century'각 Bin은 1세기(달력상의 100년)입니다.datetime
    'secondofminute'

    Bin은 0~59 사이의 초입니다.

    datetime
    'minuteofhour'

    Bin은 0~59 사이의 분입니다.

    datetime
    'hourofday'

    Bin은 0~23 사이의 시입니다.

    datetime
    'dayofweek'

    Bin은 1~7 사이의 요일입니다. 한 주의 첫째 날은 일요일입니다.

    datetime
    'dayname'Bin은 요일의 전체 이름입니다(예: 'Sunday').datetime
    'dayofmonth'Bin은 1~31 사이의 일입니다.datetime
    'dayofyear'Bin은 1~366 사이의 일입니다.datetime
    'weekofmonth'Bin은 1~6 사이의 주입니다.datetime
    'weekofyear'Bin은 1~54 사이의 주입니다.datetime
    'monthname'Bin은 월의 전체 이름입니다(예: 'January').datetime
    'monthofyear'

    Bin은 1~12 사이의 월입니다.

    datetime
    'quarterofyear'Bin은 1~4 사이의 분기입니다.datetime

  • 각 그룹화 변수 또는 벡터의 비닝 규칙을 나열하는 셀형 배열

여러 그룹화 변수가 지정된 경우 모든 그룹화 변수에 적용되는 단일 비닝 규칙을 제공하거나 각 그룹화 변수에 대한 비닝 방법을 포함하는 셀형 배열(예: {'none',[0 2 4 Inf]})을 제공할 수 있습니다.

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정됩니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. Name은 따옴표 안에 표시해야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 어떤 순서로든 지정할 수 있습니다.

예: G = groupsummary(T,groupvars,groupbins,'IncludedEdge','right')

포함된 Bin 경계로, 'left' 또는 'right'로 지정되며, Bin 구간의 어느 끝을 포함하는지 나타냅니다.

이 이름-값 쌍은 groupbins가 지정된 경우에만 지정할 수 있으며, 값은 모든 그룹화 변수 또는 벡터의 모든 비닝 방식에 적용됩니다.

누락된 그룹 표시자로, true 또는 false로 지정됩니다. 파라미터 값이 true인 경우, groupsummary는 누락된 값으로 구성된 그룹을 표시합니다(예: NaN). 파라미터 값이 false인 경우, groupsummary는 누락된 그룹을 표시하지 않습니다.

데이터형: logical

빈 그룹 표시자로, true 또는 false로 지정됩니다. 파라미터 값이 false인 경우, groupsummary는 요소를 포함하지 않는 그룹을 표시하지 않습니다. 파라미터 값이 true인 경우, groupsummary는 빈 그룹을 표시합니다.

데이터형: logical

출력 인수

모두 축소

출력 테이블로, 그룹의 계산 결과가 테이블로 반환됩니다.

출력 배열로, 그룹화 계산 결과가 벡터 또는 행렬로 반환됩니다. 여러 방법을 지정하는 경우 groupsummary는 나열된 순서대로 계산 결과를 가로로 결합합니다.

배열 입력 데이터에 대한 그룹으로, 열 벡터로 반환되거나 각각의 그룹화 벡터에 대응하는 열 벡터로 구성된 셀형 배열로 반환됩니다.

둘 이상의 그룹화 벡터를 제공하는 경우 BG는 동일한 길이의 열 벡터를 포함하는 셀형 배열입니다. 그룹 정보는 BG의 모든 벡터의 요소를 행별로 관찰하여 찾을 수 있습니다. 각 그룹은 출력 배열 B의 대응하는 행으로 매핑됩니다.

배열 입력 데이터의 그룹 개수로, 각 그룹의 요소 개수가 열 벡터로 반환됩니다. BC의 길이는 BG로 반환된 그룹 열 벡터의 길이와 같습니다.

  • groupsummary를 여러 번 호출하는 경우에는 성능 향상을 위해 그룹화 변수를 categorical 유형이나 logical 유형으로 변환하는 것이 좋습니다. 예를 들어, 유형이 char인 그룹화 변수가 있는 경우(예: 요소가 'Male''Female'Gender) 명령 categorical(Gender)를 사용하여 그룹화 변수를 categorical형 값으로 변환할 수 있습니다.

확장 기능

R2018a에 개발됨