Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

groupcounts

그룹 요소의 개수

설명

테이블 데이터

예제

G = groupcounts(T,groupvars)는 테이블 또는 타임테이블 T에 대해 고유한 그룹화 변수 조합, 각 그룹의 구성원 수, 각 그룹이 나타내는 데이터에 대한 [0, 100] 범위의 백분율을 반환합니다. 그룹은 같은 고유한 값 조합을 가진 groupvars의 변수의 행으로 정의됩니다. 출력 테이블의 각 행은 하나의 그룹에 대응됩니다. 예를 들어, G = groupcounts(T,"HealthStatus")는 변수 HealthStatus의 각 그룹의 도수와 백분율이 포함된 테이블을 반환합니다.

자세한 내용은 그룹 도수 계산 항목을 참조하십시오.

예제

G = groupcounts(T,groupvars,groupbins)는 그룹화 전에 비닝 방식 groupbins에 따라 groupvars의 행을 비닝하도록 지정합니다. 예를 들어, G = groupcounts(T,"SaleDate","year")는 그룹화 변수 SaleDate에 따라 T에서 각 연도의 모든 판매에 대한 그룹 도수와 그룹 백분율을 반환합니다.

예제

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

배열 데이터

B = groupcounts(A)는 벡터, 행렬 또는 셀형 배열 A의 각 그룹에 있는 구성원 수를 반환합니다. 그룹은 같은 고유한 값 조합을 가진 A의 열 벡터의 행으로 정의됩니다. B의 각 행은 한 그룹의 도수를 포함합니다.

B = groupcounts(A,groupbins)는 그룹화 전에 비닝 방식 groupbins에 따라 데이터를 비닝하도록 지정합니다.

B = groupcounts(___,Name,Value)는 입력 배열에 대해 위에 열거된 구문 중 하나에서 이름-값 인수를 하나 이상 사용하여 추가적인 그룹화 속성을 지정합니다.

예제

[B,BG,BP] = groupcounts(A,___)는 추가 그룹 정보를 반환합니다. BGB의 행에 해당하는 고유한 그룹화 벡터 조합입니다. BPB의 각 그룹 도수가 나타내는 데이터의 백분율입니다. 백분율의 범위는 [0, 100]입니다.

예제

모두 축소

테이블 데이터를 기반으로 각 그룹의 요소 개수를 계산합니다.

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

HealthStatus = categorical(["Poor"; "Good"; "Fair"; "Fair"; "Poor"; "Excellent"; "Good"; "Excellent"]);
Smoker = logical([1; 0; 0; 1; 1; 0; 0; 1]);
Weight = [176; 153; 131; 133; 119; 120; 140; 129];
T = table(HealthStatus,Smoker,Weight)
T=8×3 table
    HealthStatus    Smoker    Weight
    ____________    ______    ______

     Poor           true       176  
     Good           false      153  
     Fair           false      131  
     Fair           true       133  
     Poor           true       119  
     Excellent      false      120  
     Good           false      140  
     Excellent      true       129  

건강 상태를 기준으로 개인을 그룹화하고 각 그룹에 속한 개인의 수와 백분율을 반환합니다.

G1 = groupcounts(T,"HealthStatus")
G1=4×3 table
    HealthStatus    GroupCount    Percent
    ____________    __________    _______

     Excellent          2           25   
     Fair               2           25   
     Good               2           25   
     Poor               2           25   

건강 상태와 흡연 상태를 기준으로 개인을 그룹화하고 각 그룹에 속한 개인의 수와 백분율을 반환합니다. 기본적으로 groupcounts는 요소가 0개인 그룹은 표시하지 않기 때문에 그룹화 변수 값의 일부 고유한 조합은 반환되지 않습니다.

G2 = groupcounts(T,["HealthStatus","Smoker"])
G2=6×4 table
    HealthStatus    Smoker    GroupCount    Percent
    ____________    ______    __________    _______

     Excellent      false         1          12.5  
     Excellent      true          1          12.5  
     Fair           false         1          12.5  
     Fair           true          1          12.5  
     Good           false         2            25  
     Poor           true          2            25  

요소를 포함하지 않는 그룹을 포함하여 각 그룹의 행을 반환하려면 IncludeEmptyGroupstrue로 지정하십시오.

G3 = groupcounts(T,["HealthStatus","Smoker"],"IncludeEmptyGroups",true)
G3=8×4 table
    HealthStatus    Smoker    GroupCount    Percent
    ____________    ______    __________    _______

     Excellent      false         1          12.5  
     Excellent      true          1          12.5  
     Fair           false         1          12.5  
     Fair           true          1          12.5  
     Good           false         2            25  
     Good           true          0             0  
     Poor           false         0             0  
     Poor           true          2            25  

지정된 Bin에 따라 데이터를 그룹화합니다.

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

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]';
ItemsSold = [14 13 8 5 10 16 8 6 7 11]';
TT = timetable(TimeStamps,Profit,ItemsSold)
TT=10×2 timetable
    TimeStamps     Profit    ItemsSold
    ___________    ______    _________

    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    

그룹을 아이템 개수의 구간으로 비닝하여 총 판매량 기준으로 그룹 도수를 계산합니다.

G = groupcounts(TT,"ItemsSold",[0 4 8 12 16])
G=3×3 table
    disc_ItemsSold    GroupCount    Percent
    ______________    __________    _______

       [4, 8)             3           30   
       [8, 12)            4           40   
       [12, 16]           3           30   

요일별로 비닝된 그룹 도수를 계산합니다.

G = groupcounts(TT,"TimeStamps","dayname")
G=5×3 table
    dayname_TimeStamps    GroupCount    Percent
    __________________    __________    _______

        Tuesday               2           20   
        Wednesday             2           20   
        Thursday              1           10   
        Friday                2           20   
        Saturday              3           30   

벡터에서 두 번 이상 나타나는 요소를 확인합니다.

1과 5 사이의 값으로 구성된 열 벡터를 만듭니다.

A = [1 1 2 2 3 5 3 3 1 4]';

벡터에서 고유한 그룹을 확인하고 그룹 구성원의 수를 셉니다.

[B,BG] = groupcounts(A)
B = 5×1

     3
     2
     3
     1
     1

BG = 5×1

     1
     2
     3
     4
     5

도수가 1보다 큰 그룹에 대한 논리형 인덱스를 만들어 벡터에서 두 번 이상 나타나는 요소를 확인합니다. 그룹의 요소를 참조하여 중복된 벡터 요소를 반환합니다.

duplicates = BG(B > 1)
duplicates = 3×1

     1
     2
     3

건강 상태와 흡연 상태에 따라 묶은 사람들의 그룹에 대한 그룹 도수를 계산합니다.

8명의 개인에 대한 정보를 서로 다른 유형의 벡터 3개로 저장합니다.

HealthStatus = categorical(["Poor"; "Good"; "Fair"; "Fair"; "Poor"; "Excellent"; "Good"; "Excellent"]);
Smoker = logical([1; 0; 0; 1; 1; 0; 0; 1]);
Weight = [176; 153; 131; 133; 119; 120; 140; 129];

건강 상태와 흡연 상태에 따라 그룹화하고, 그룹 도수를 계산합니다. 그룹 BG 및 그룹 도수 백분율 BP도 반환하도록 3개의 출력값을 지정합니다.

BG는 그룹의 요소를 행별로 관찰했을 때 각 그룹을 설명하는 2개의 벡터를 포함하는 셀형 배열입니다. 예를 들어, BG{1}의 첫 번째 행은 첫 번째 그룹의 개인의 건강 상태가 Excellent임을 나타내며, BG{2}의 첫 번째 행은 이들이 비흡연자임을 나타냅니다. 마지막으로, BPBG의 대응하는 그룹에 대한 각 그룹의 구성원 비율을 포함합니다.

[B,BG,BP] = groupcounts({HealthStatus,Smoker},"IncludeEmptyGroups",true);
B
B = 8×1

     1
     1
     1
     1
     2
     0
     0
     2

BG{1}
ans = 8x1 categorical
     Excellent 
     Excellent 
     Fair 
     Fair 
     Good 
     Good 
     Poor 
     Poor 

BG{2}
ans = 8x1 logical array

   0
   1
   0
   1
   0
   1
   0
   1

BP
BP = 8×1

   12.5000
   12.5000
   12.5000
   12.5000
   25.0000
         0
         0
   25.0000

입력 인수

모두 축소

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

입력 배열로, 열 벡터, 행렬로 저장된 열 벡터의 그룹, 또는 행 벡터나 문자열 행 벡터의 셀형 배열, 또는 행렬로 지정됩니다.

그룹화 변수 또는 벡터로, 다음 표에 나와 있는 옵션 중 하나로 지정됩니다. table형 또는 timetable형 입력 데이터의 경우 groupvars는 데이터에서 어느 변수를 사용하여 그룹을 계산할지 나타냅니다. groupvars로 지정되지 않은 다른 변수는 연산이 수행되지 않고 출력값으로 전달되지 않습니다.

인덱싱 방식예제

변수 이름:

  • string형, 문자형 벡터 또는 셀형 배열

  • pattern 객체

  • "A" 또는 'A'A라는 변수

  • ["A","B"] 또는 {'A','B'}AB라는 두 개의 변수

  • "Var"+digitsPattern(1)"Var" 다음에 하나의 숫자가 오는 이름을 갖는 변수

변수 인덱스:

  • 테이블에서의 변수 위치를 나타내는 인덱스 번호

  • 숫자로 구성된 벡터

  • 논리형 벡터. 일반적으로 이 벡터는 변수의 개수와 길이가 같지만 후행 0 값 또는 false 값을 생략할 수 있음

  • 3 — 테이블의 세 번째 변수

  • [2 3] — 테이블의 두 번째 변수와 세 번째 변수

  • [false false true] — 세 번째 변수

함수 핸들:

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

  • @isnumeric — 숫자형 값을 포함하는 모든 변수

변수 유형:

  • 지정된 유형의 변수를 선택하는 vartype 첨자

  • vartype("numeric") — 숫자형 값을 포함하는 모든 변수

예: groupcounts(T,"Var3")

그룹화 변수 또는 벡터에 대한 비닝 방식으로, 다음 비닝 방법 중 하나 이상으로 지정됩니다. 모든 그룹화 변수 또는 벡터에 동일한 비닝 방법을 적용하려면 하나의 비닝 방법을 지정하십시오. 각 그룹화 변수 또는 벡터에 서로 다른 비닝 방법을 적용하려면, 비닝 방법으로 구성된 셀형 배열을 지정하십시오. 이때 각 셀에는 해당 그룹화 변수 또는 벡터의 비닝 방법이 포함됩니다.

  • "none" — 비닝하지 않음.

  • Bin 경계값으로 구성된 벡터 — Bin 경계값에 따라 Bin이 정의됩니다. datetime형 그룹화 변수 또는 벡터의 경우 경계값을 숫자형 값 또는 datetime형 값으로 지정할 수 있습니다.

  • Bin 개수 — 이 숫자에 따라 균일한 간격으로 생성할 Bin 개수가 결정됩니다. Bin 개수는 양의 정수 스칼라로 지정할 수 있습니다.

  • 시간 길이(Bin 너비) — 이 시간 길이에 따라 각 Bin의 너비가 결정됩니다. datetime형 또는 duration형 그룹화 변수 또는 벡터의 경우 Bin 너비를 duration형 또는 calendarDuration형 스칼라로 지정할 수 있습니다.

  • 시간 단위의 이름(Bin 너비) — 각 Bin의 너비를 결정하는 시간 단위의 이름입니다. datetime형 또는 duration형 그룹화 변수 또는 벡터의 경우 Bin 너비를 다음 표에 나와 있는 옵션 중 하나로 지정할 수 있습니다.

    설명데이터형
    "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

예: G = groupcounts(T,"Var1",[-Inf 0 Inf])

예: G = groupcounts(T,["Var1" "Var2"],{"none" "year"})

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

예: G = groupcounts(T,groupvars,groupbins,IncludedEdge="right")

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: G = groupcounts(T,groupvars,groupbins,"IncludedEdge","right")

비닝 방식에 대한 포함된 Bin 경계값으로, "left" 또는 "right"로 지정되며, Bin 구간의 어느 끝을 포함하는지 나타냅니다.

groupbins도 지정하는 경우에만 IncludedEdge를 지정할 수 있으며, 그 값은 모든 그룹화 변수 또는 벡터의 모든 비닝 방법에 적용됩니다.

누락값을 그룹으로 처리하기 위한 옵션으로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. IncludeMissingGroupstrue인 경우 groupcounts는 그룹화 변수 또는 벡터에 있는 NaN 같은 누락값을 그룹으로 처리합니다. 그룹화 변수 또는 벡터에 누락값이 없거나 IncludeMissingGroupsfalse이면 groupcounts는 누락값을 그룹으로 처리하지 않습니다.

그룹 도수 연산에 비어 있는 그룹을 포함하기 위한 옵션으로, 숫자형 또는 논리값 1(true) 또는 0(false)으로 지정됩니다. IncludeEmptyGroupsfalse이면 groupcounts는 빈 그룹을 생략합니다. IncludeEmptyGroupstrue이면 groupcounts는 빈 그룹을 포함합니다.

다음과 같은 경우에 빈 그룹이 발생합니다.

  • 입력 데이터(예: categorical형, 논리형 또는 비닝된 숫자형 변수 또는 벡터)에 그룹화 변수 또는 벡터의 가능한 값이 표시되지 않은 경우. 예를 들어, 입력 테이블에 논리형 그룹화 변수의 값이 true인 행이 없는 경우 true는 빈 그룹을 정의합니다.

  • 그룹화 변수 또는 벡터의 고유한 조합이 입력 데이터에 표시되지 않은 경우. 예를 들어 입력 테이블에 그룹화 변수 A의 값이 A1이고 그룹화 변수 B의 값이 B1인 행이 없는 경우 A1_B1은 빈 그룹을 정의합니다.

출력 인수

모두 축소

table형 또는 timetable형 입력 데이터에 대한 출력 테이블로, 테이블로 반환됩니다. G는 계산된 그룹, 각 그룹의 요소 개수 및 각 그룹 도수로 표현되는 백분율을 포함합니다. 단일 그룹화 변수의 경우 출력 그룹은 "sorted" 옵션과 함께 unique 함수로 반환되는 순서에 따라 정렬됩니다.

배열 입력 데이터의 그룹 도수로, 열 벡터로 반환됩니다. B에는 각 그룹의 요소 개수가 포함되어 있습니다.

배열 입력 데이터에 대한 그룹으로, 열 벡터로 반환되거나 열 벡터로 구성된 셀형 배열로 반환됩니다. 단일 그룹화 벡터의 경우 출력 그룹은 "sorted" 옵션과 함께 unique 함수로 반환되는 순서에 따라 정렬됩니다.

둘 이상의 입력 벡터의 경우 BG는 동일한 길이의 열 벡터를 포함하는 셀형 배열입니다. 각 그룹에 대한 정보는 BG의 모든 벡터에 걸쳐 있는 행의 요소에 포함되어 있습니다. 각 그룹은 출력 배열 B의 대응하는 행으로 매핑됩니다.

배열 입력 데이터의 그룹 도수 백분율로, 열 벡터로 반환됩니다. BPB의 각 그룹에 대해 [0, 100] 범위의 백분율을 포함합니다.

세부 정보

모두 축소

그룹 도수 계산

다음 표에서는 그룹 도수 계산에 대해 설명합니다.

샘플 테이블 T구문 예제결과 테이블

Input table containing categorical variable VarA and numeric variable VarB

groupcounts(T,"VarA")

Output table where the row names are the categories of VarA and the variables are the number and percentage of group members

groupcounts(T,["VarA" "VarB"],{"none",[-Inf 0 Inf]})

Output table where the row names are the combinations of categories of VarA and bins of VarB, and the variables are the number and percentage of group members

  • groupcounts를 여러 번 호출하는 경우에는 성능 향상을 위해 그룹화 변수를 categorical 유형이나 logical 유형으로 변환하는 것이 좋습니다. 예를 들어, string형 배열 그룹화 변수가 있는 경우(예: 요소 "Poor", "Fair", "Good", "Excellent"가 포함된 HealthStatus), 명령 categorical(HealthStatus)를 사용하여 categorical형 변수로 변환할 수 있습니다.

확장 기능

버전 내역

R2019a에 개발됨

모두 확장