groupcounts
구문
설명
테이블 데이터
는 테이블 또는 타임테이블 G
= groupcounts(T
,groupvars
)T
에 대해 고유한 그룹화 변수 조합, 각 그룹의 구성원 수, 각 그룹이 나타내는 데이터에 대한 [0, 100] 범위의 백분율을 반환합니다. 그룹은 같은 고유한 값 조합을 가진 groupvars
의 변수의 행으로 정의됩니다. 출력 테이블의 각 행은 하나의 그룹에 대응됩니다. 예를 들어, G = groupcounts(T,"HealthStatus")
는 변수 HealthStatus
의 각 그룹의 도수와 백분율이 포함된 테이블을 반환합니다.
자세한 내용은 그룹 도수 계산 항목을 참조하십시오.
는 위에 열거된 구문에서 하나 이상의 이름-값 인수를 사용하여 추가적인 그룹화 속성을 지정합니다. 예를 들어, G
= groupcounts(___,Name,Value
)G = groupcounts(T,"Category1","IncludeMissingGroups",false)
는 Category1
에서 <undefined>
로 표시되는 누락된 categorical
형 데이터에서 만들어진 그룹을 제외합니다.
배열 데이터
는 입력 배열에 대해 위에 열거된 구문 중 하나에서 이름-값 인수를 하나 이상 사용하여 추가적인 그룹화 속성을 지정합니다.B
= groupcounts(___,Name,Value
)
예제
테이블 변수 그룹화하기
테이블 데이터를 기반으로 각 그룹의 요소 개수를 계산합니다.
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
요소를 포함하지 않는 그룹을 포함하여 각 그룹의 행을 반환하려면 IncludeEmptyGroups
를 true
로 지정하십시오.
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 지정하기
지정된 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}
의 첫 번째 행은 이들이 비흡연자임을 나타냅니다. 마지막으로, BP
는 BG
의 대응하는 그룹에 대한 각 그룹의 구성원 비율을 포함합니다.
[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
입력 인수
T
— 입력 테이블
테이블 | 타임테이블
입력 테이블로, table형 또는 timetable형으로 지정됩니다.
A
— 입력 배열
열 벡터 | 행렬 | 셀형 배열
입력 배열로, 열 벡터, 행렬로 저장된 열 벡터의 그룹, 또는 행 벡터나 문자열 행 벡터의 셀형 배열, 또는 행렬로 지정됩니다.
groupvars
— 그룹화 변수 또는 벡터
스칼라 | 벡터 | 행렬 | 셀형 배열 | pattern형 | 함수 핸들 | 테이블 vartype
첨자
그룹화 변수 또는 벡터로, 다음 표에 나와 있는 옵션 중 하나로 지정됩니다. table형 또는 timetable형 입력 데이터의 경우 groupvars
는 데이터에서 어느 변수를 사용하여 그룹을 계산할지 나타냅니다. groupvars
로 지정되지 않은 다른 변수는 연산이 수행되지 않고 출력값으로 전달되지 않습니다.
인덱싱 방식 | 예제 |
---|---|
변수 이름:
|
|
변수 인덱스:
|
|
함수 핸들:
|
|
변수 유형:
|
|
예: groupcounts(T,"Var3")
groupbins
— 그룹화 변수 또는 벡터에 대한 비닝 방식
"none"
(디폴트 값) | Bin 경계값으로 구성된 벡터 | Bin 개수 | 시간 길이(Bin 너비) | 시간 단위의 이름(Bin 너비) | 비닝 방법으로 구성된 셀형 배열
그룹화 변수 또는 벡터에 대한 비닝 방식으로, 다음 비닝 방법 중 하나 이상으로 지정됩니다. 모든 그룹화 변수 또는 벡터에 동일한 비닝 방법을 적용하려면 하나의 비닝 방법을 지정하십시오. 각 그룹화 변수 또는 벡터에 서로 다른 비닝 방법을 적용하려면, 비닝 방법으로 구성된 셀형 배열을 지정하십시오. 이때 각 셀에는 해당 그룹화 변수 또는 벡터의 비닝 방법이 포함됩니다.
"none"
— 비닝하지 않음.Bin 경계값으로 구성된 벡터 — Bin 경계값에 따라 Bin이 정의됩니다.
datetime
형 그룹화 변수 또는 벡터의 경우 경계값을 숫자형 값 또는datetime
형 값으로 지정할 수 있습니다.Bin 개수 — 이 숫자에 따라 균일한 간격으로 생성할 Bin 개수가 결정됩니다. Bin 개수는 양의 정수 스칼라로 지정할 수 있습니다.
시간 길이(Bin 너비) — 이 시간 길이에 따라 각 Bin의 너비가 결정됩니다.
datetime
형 또는duration
형 그룹화 변수 또는 벡터의 경우 Bin 너비를duration
형 또는calendarDuration
형 스칼라로 지정할 수 있습니다.시간 단위의 이름(Bin 너비) — 각 Bin의 너비를 결정하는 시간 단위의 이름입니다.
datetime
형 또는duration
형 그룹화 변수 또는 벡터의 경우 Bin 너비를 다음 표에 나와 있는 옵션 중 하나로 지정할 수 있습니다.값 설명 데이터형 "second"
각 Bin은 1초입니다.
datetime
및duration
"minute"
각 Bin은 1분입니다.
datetime
및duration
"hour"
각 Bin은 1시간입니다.
datetime
및duration
"day"
각 Bin은 달력상의 1일입니다. 이 값은 일광 절약 시간제 변동을 고려합니다.
datetime
및duration
"week"
각 Bin은 달력상의 1주일입니다. datetime
만"month"
각 Bin은 달력상의 1개월입니다. datetime
만"quarter"
각 Bin은 달력상의 1사분기입니다. datetime
만"year"
각 Bin은 달력상의 1년입니다. 이 값은 윤일을 고려합니다.
datetime
및duration
"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")
IncludedEdge
— 비닝 방식에 대한 포함된 Bin 경계값
"left"
(디폴트 값) | "right"
비닝 방식에 대한 포함된 Bin 경계값으로, "left"
또는 "right"
로 지정되며, Bin 구간의 어느 끝을 포함하는지 나타냅니다.
groupbins
도 지정하는 경우에만 IncludedEdge
를 지정할 수 있으며, 그 값은 모든 그룹화 변수 또는 벡터의 모든 비닝 방법에 적용됩니다.
IncludeMissingGroups
— 누락값을 그룹으로 처리하기 위한 옵션
true
또는 1
(디폴트 값) | false
또는 0
누락값을 그룹으로 처리하기 위한 옵션으로, 숫자형 또는 논리값 1
(true
) 또는 0
(false
)으로 지정됩니다. IncludeMissingGroups
가 true
인 경우 groupcounts
는 그룹화 변수 또는 벡터에 있는 NaN
같은 누락값을 그룹으로 처리합니다. 그룹화 변수 또는 벡터에 누락값이 없거나 IncludeMissingGroups
가 false
이면 groupcounts
는 누락값을 그룹으로 처리하지 않습니다.
IncludeEmptyGroups
— 그룹 도수 연산에 비어 있는 그룹을 포함하기 위한 옵션
false
또는 0
(디폴트 값) | true
또는 1
그룹 도수 연산에 비어 있는 그룹을 포함하기 위한 옵션으로, 숫자형 또는 논리값 1
(true
) 또는 0
(false
)으로 지정됩니다. IncludeEmptyGroups
가 false
이면 groupcounts
는 빈 그룹을 생략합니다. IncludeEmptyGroups
가 true
이면 groupcounts
는 빈 그룹을 포함합니다.
다음과 같은 경우에 빈 그룹이 발생합니다.
입력 데이터(예: categorical형, 논리형 또는 비닝된 숫자형 변수 또는 벡터)에 그룹화 변수 또는 벡터의 가능한 값이 표시되지 않은 경우. 예를 들어, 입력 테이블에 논리형 그룹화 변수의 값이
true
인 행이 없는 경우true
는 빈 그룹을 정의합니다.그룹화 변수 또는 벡터의 고유한 조합이 입력 데이터에 표시되지 않은 경우. 예를 들어 입력 테이블에 그룹화 변수
A
의 값이A1
이고 그룹화 변수B
의 값이B1
인 행이 없는 경우A1_B1
은 빈 그룹을 정의합니다.
출력 인수
G
— 출력 테이블
테이블
table형 또는 timetable형 입력 데이터에 대한 출력 테이블로, 테이블로 반환됩니다. G
는 계산된 그룹, 각 그룹의 요소 개수 및 각 그룹 도수로 표현되는 백분율을 포함합니다. 단일 그룹화 변수의 경우 출력 그룹은 "sorted"
옵션과 함께 unique
함수로 반환되는 순서에 따라 정렬됩니다.
B
— 그룹 도수
열 벡터
배열 입력 데이터의 그룹 도수로, 열 벡터로 반환됩니다. B
에는 각 그룹의 요소 개수가 포함되어 있습니다.
BG
— 그룹
열 벡터 | 열 벡터로 구성된 셀형 배열
배열 입력 데이터에 대한 그룹으로, 열 벡터로 반환되거나 열 벡터로 구성된 셀형 배열로 반환됩니다. 단일 그룹화 벡터의 경우 출력 그룹은 "sorted"
옵션과 함께 unique
함수로 반환되는 순서에 따라 정렬됩니다.
둘 이상의 입력 벡터의 경우 BG
는 동일한 길이의 열 벡터를 포함하는 셀형 배열입니다. 각 그룹에 대한 정보는 BG
의 모든 벡터에 걸쳐 있는 행의 요소에 포함되어 있습니다. 각 그룹은 출력 배열 B
의 대응하는 행으로 매핑됩니다.
BP
— 그룹 도수 백분율
열 벡터
배열 입력 데이터의 그룹 도수 백분율로, 열 벡터로 반환됩니다. BP
는 B
의 각 그룹에 대해 [0, 100]
범위의 백분율을 포함합니다.
세부 정보
그룹 도수 계산
다음 표에서는 그룹 도수 계산에 대해 설명합니다.
샘플 테이블 T | 구문 예제 | 결과 테이블 |
---|---|---|
| groupcounts(T,"VarA") | |
groupcounts(T,["VarA" "VarB"],{"none",[-Inf 0 Inf]}) | |
팁
groupcounts
를 여러 번 호출하는 경우에는 성능 향상을 위해 그룹화 변수를categorical
유형이나logical
유형으로 변환하는 것이 좋습니다. 예를 들어, string형 배열 그룹화 변수가 있는 경우(예: 요소"Poor"
,"Fair"
,"Good"
,"Excellent"
가 포함된HealthStatus
), 명령categorical(HealthStatus)
를 사용하여 categorical형 변수로 변환할 수 있습니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
사용법 관련 참고 및 제한 사항:
첫 번째 입력 인수는 셀형 배열을 지원하지 않습니다.
groupvars
인수는 함수 핸들을 지원하지 않습니다.IncludeEmptyGroups
이름-값 인수는 지원되지 않습니다.그룹의 순서는 메모리 내
groupcounts
계산에 사용된 순서와 다를 수 있습니다.이산화된 datetime형 배열을 기준으로 그룹화할 경우 categorical형 그룹 이름은 메모리 내
groupcounts
계산에 사용된 그룹 이름과 다릅니다.
자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
입력 데이터를 제외한 모든 입력 인수는 상수여야 합니다.
희소 형식 입력값은 지원되지 않습니다.
datetime형 데이터나 duration형 데이터에는 비닝 방식이 지원되지 않습니다.
그룹 변수의 수가 런타임에 변경될 수 있는 경우 두 번째 출력
BG
는 셀형 배열입니다.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2019a에 개발됨R2022a: 코드 생성 지원
groupcounts
함수에 대해 C 또는 C++ 코드를 생성합니다. 사용법 관련 참고 및 제한 사항에 관해서는 C/C++ 코드 생성을 참조하십시오.
R2021a: table
출력값에 백분율이 자동 포함됨
groupcounts
가 테이블 또는 타임테이블의 데이터에 대해 연산을 수행할 때 출력값에 백분율에 대한 추가 테이블 변수가 포함됩니다. 백분율은 [0, 100]
범위 내에 있으며 테이블 변수 Percent
에 포함됩니다.
특정 테이블 변수를 참조하는 코드는 영향을 받지 않습니다. 그러나 출력 테이블의 변수 개수에 따라 달라지는 코드를 업데이트해야 할 수도 있습니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)