이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
findgroups
그룹을 찾고 그룹 번호 반환
구문
설명
데이터를 그룹으로 분할하고 이 그룹에 함수를 적용하려면 findgroups
함수와 splitapply
함수를 함께 사용하십시오. 데이터 그룹 계산에 대한 자세한 내용은 데이터 그룹에 대한 계산 항목을 참조하십시오.
는 그룹화 변수 G
= findgroups(A
)A
에서 생성된 그룹 번호의 벡터 G
를 반환합니다. 출력 인수 G
는 1부터 N
까지의 정수 값을 포함하고 있으며 A
에 있는 N
개의 고유한 값에 대해 N
개의 고유 그룹이 있음을 나타냅니다. 예를 들어, A
가 ["b","a","a","b"]
인 경우 findgroups
는 G
를 [2 1 1 2]
로 반환합니다.
G
를 사용하여 다른 변수에서 나온 데이터 그룹을 분할하려면 이를 splitapply
함수에 대한 입력 인수로 전달합니다.
findgroups
함수는 A
에 있는 빈 문자형 벡터와 NaN
, NaT
, 정의되지 않은 categorical형 값을 누락값으로 취급하고 대응하는 G
의 요소로 NaN
을 반환합니다.
예제
그룹 번호를 사용하여 데이터 분할하기
그룹 번호를 사용하여 환자의 체중 측정값을 흡연자와 비흡연자의 체중 그룹으로 나눕니다. 그런 다음 각 환자 그룹의 평균 체중을 계산합니다.
샘플 파일 patients.mat
에서 환자 데이터를 불러옵니다.
load patients whos Smoker Weight
Name Size Bytes Class Attributes Smoker 100x1 100 logical Weight 100x1 800 double
findgroups
를 사용하여 그룹을 지정합니다. G
의 각 요소는 환자가 속한 그룹을 지정하는 그룹 번호입니다. 그룹 1
은 비흡연자를 포함하고 그룹 2
는 흡연자를 포함합니다.
G = findgroups(Smoker)
G = 100×1
2
1
1
1
1
1
2
1
1
1
⋮
환자의 체중을 표시합니다.
Weight
Weight = 100×1
176
163
131
133
119
142
142
180
183
132
⋮
G
를 사용하여 Weight
배열을 두 개의 체중 그룹으로 분할합니다. mean
함수를 적용합니다. 비흡연자의 평균 체중은 흡연자의 평균 체중보다 약간 적습니다.
meanWeights = splitapply(@mean,Weight,G)
meanWeights = 2×1
149.9091
161.9412
두 그룹화 변수를 사용하여 데이터 분할하기
환자 그룹의 평균 체중을 계산합니다. 이 경우, 환자를 흡연 여부(흡연자 또는 비흡연자)와 진료를 받은 병원을 기준으로 그룹화합니다. 데이터 세트에 3개의 병원이 있으므로 6개의 환자 그룹이 있습니다.
샘플 파일 patients.mat
에서 환자의 병원 위치, 흡연 여부, 체중을 불러옵니다.
load patients whos Location Smoker Weight
Name Size Bytes Class Attributes Location 100x1 14208 cell Smoker 100x1 100 logical Weight 100x1 800 double
Location
배열과 Smoker
배열을 표시합니다.
Location
Location = 100x1 cell
{'County General Hospital' }
{'VA Hospital' }
{'St. Mary's Medical Center'}
{'VA Hospital' }
{'County General Hospital' }
{'St. Mary's Medical Center'}
{'VA Hospital' }
{'VA Hospital' }
{'St. Mary's Medical Center'}
{'County General Hospital' }
{'County General Hospital' }
{'St. Mary's Medical Center'}
{'VA Hospital' }
{'VA Hospital' }
{'St. Mary's Medical Center'}
{'VA Hospital' }
{'St. Mary's Medical Center'}
{'VA Hospital' }
{'County General Hospital' }
{'County General Hospital' }
{'VA Hospital' }
{'VA Hospital' }
{'VA Hospital' }
{'County General Hospital' }
{'County General Hospital' }
{'VA Hospital' }
{'VA Hospital' }
{'County General Hospital' }
{'County General Hospital' }
{'County General Hospital' }
⋮
Smoker
Smoker = 100x1 logical array
1
0
0
0
0
0
1
0
0
0
⋮
병원 위치와 흡연 여부를 사용하여 그룹을 지정합니다. Smoker
와 Location
간에 가능한 조합이 6개이므로 G
는 1에서 6까지의 정수를 포함합니다.
G = findgroups(Location,Smoker)
G = 100×1
2
5
3
5
1
3
6
5
3
1
⋮
각 그룹의 평균 체중을 계산합니다. 흡연 여부에 따른 차이보다는 병원 위치에 따른 차이가 더 적습니다.
meanWeights = splitapply(@mean,Weight,G)
meanWeights = 6×1
150.1739
159.8125
146.8947
158.4000
152.0417
165.9231
두 번째 출력값의 그룹 ID 사용하기
환자 그룹의 평균 체중을 계산하고 그 결과를 테이블에 표시합니다. 평균 체중을 그룹 ID와 연결하려면 findgroups
의 두 번째 출력 인수를 사용합니다.
샘플 파일 patients.mat
에서 환자의 체중과 흡연 여부를 불러옵니다.
load patients whos Smoker Weight
Name Size Bytes Class Attributes Smoker 100x1 100 logical Weight 100x1 800 double
findgroups
를 사용하여 그룹을 지정합니다. 출력 인수 ID
의 값은 findgroups
가 그룹화 변수로 식별하는 그룹에 대한 레이블입니다.
[G,ID] = findgroups(Smoker)
G = 100×1
2
1
1
1
1
1
2
1
1
1
⋮
ID = 2x1 logical array
0
1
평균 체중을 계산합니다. 평균 체중이 포함된 테이블을 생성합니다.
meanWeight = splitapply(@mean,Weight,G); T = table(ID,meanWeight,'VariableNames',["Smokers","Mean Weights"])
T=2×2 table
Smokers Mean Weights
_______ ____________
false 149.91
true 161.94
두 그룹화 변수의 그룹 ID 사용하기
환자 그룹의 평균 체중을 계산하고 그 결과를 테이블에 표시합니다. 이 경우, 환자를 흡연 여부(흡연자 또는 비흡연자)와 진료를 받은 병원을 기준으로 그룹화합니다.
샘플 파일 patients.mat
에서 환자의 병원 위치, 흡연 여부, 체중을 불러옵니다.
load patients whos Location Smoker Weight
Name Size Bytes Class Attributes Location 100x1 14208 cell Smoker 100x1 100 logical Weight 100x1 800 double
Location
을 string형 배열로 변환합니다. 그런 다음 병원 위치와 흡연 여부를 사용하여 그룹을 지정합니다. 두 개의 그룹화 변수를 입력값으로 지정하므로 두 개의 그룹 ID를 추가 출력값으로 지정할 수 있습니다. 병원 위치와 흡연 여부의 가능한 조합은 6개입니다. ID1
과 ID2
를 함께 사용하여 6개 그룹에 대한 ID를 제공합니다.
Location = string(Location); [G,ID1,ID2] = findgroups(Location,Smoker)
G = 100×1
2
5
3
5
1
3
6
5
3
1
⋮
ID1 = 6x1 string
"County General Hospital"
"County General Hospital"
"St. Mary's Medical Center"
"St. Mary's Medical Center"
"VA Hospital"
"VA Hospital"
ID2 = 6x1 logical array
0
1
0
1
0
1
각 그룹의 평균 체중을 계산합니다.
meanWeights = splitapply(@mean,Weight,G)
meanWeights = 6×1
150.1739
159.8125
146.8947
158.4000
152.0417
165.9231
각 환자 그룹의 평균 체중이 포함된 테이블을 생성합니다.
T = table(ID1,ID2,meanWeights,'VariableNames',["Hospital","Smoker","Mean Weight"])
T=6×3 table
Hospital Smoker Mean Weight
___________________________ ______ ___________
"County General Hospital" false 150.17
"County General Hospital" true 159.81
"St. Mary's Medical Center" false 146.89
"St. Mary's Medical Center" true 158.4
"VA Hospital" false 152.04
"VA Hospital" true 165.92
테이블 변수를 기준으로 그룹화하기
테이블에 있는 그룹화 변수를 사용하여 환자의 평균 체중을 계산합니다.
환자 100명에 대한 병원 위치와 흡연 여부를 테이블에 불러옵니다.
load patients
T = table(Location,Smoker)
T=100×2 table
Location Smoker
_____________________________ ______
{'County General Hospital' } true
{'VA Hospital' } false
{'St. Mary's Medical Center'} false
{'VA Hospital' } false
{'County General Hospital' } false
{'St. Mary's Medical Center'} false
{'VA Hospital' } true
{'VA Hospital' } false
{'St. Mary's Medical Center'} false
{'County General Hospital' } false
{'County General Hospital' } false
{'St. Mary's Medical Center'} false
{'VA Hospital' } false
{'VA Hospital' } true
{'St. Mary's Medical Center'} false
{'VA Hospital' } true
⋮
T
의 Smoker
변수와 Location
변수를 사용하여 환자 그룹을 지정합니다.
G = findgroups(T)
G = 100×1
2
5
3
5
1
3
6
5
3
1
⋮
데이터 배열 Weight
의 평균 체중을 계산합니다.
meanWeights = splitapply(@mean,Weight,G)
meanWeights = 6×1
150.1739
159.8125
146.8947
158.4000
152.0417
165.9231
테이블에서 그룹화하고 출력 테이블 생성하기
병원 위치와 흡연자, 비흡연자 여부를 기준으로 그룹화된 환자의 평균 체중 테이블을 생성합니다.
환자에 대한 병원 위치와 흡연 여부를 테이블에 불러옵니다. Location
을 string형 배열로 변환합니다.
load patients
Location = string(Location);
T = table(Location,Smoker)
T=100×2 table
Location Smoker
___________________________ ______
"County General Hospital" true
"VA Hospital" false
"St. Mary's Medical Center" false
"VA Hospital" false
"County General Hospital" false
"St. Mary's Medical Center" false
"VA Hospital" true
"VA Hospital" false
"St. Mary's Medical Center" false
"County General Hospital" false
"County General Hospital" false
"St. Mary's Medical Center" false
"VA Hospital" false
"VA Hospital" true
"St. Mary's Medical Center" false
"VA Hospital" true
⋮
T
의 Location
변수와 Smoker
변수를 사용하여 환자 그룹을 지정합니다. 출력 테이블 TID
가 그룹을 식별합니다.
[G,TID] = findgroups(T); TID
TID=6×2 table
Location Smoker
___________________________ ______
"County General Hospital" false
"County General Hospital" true
"St. Mary's Medical Center" false
"St. Mary's Medical Center" true
"VA Hospital" false
"VA Hospital" true
데이터 배열 Weight
의 평균 체중을 계산합니다. 평균 체중을 TID
에 추가합니다.
TID.meanWeight = splitapply(@mean,Weight,G)
TID=6×3 table
Location Smoker meanWeight
___________________________ ______ __________
"County General Hospital" false 150.17
"County General Hospital" true 159.81
"St. Mary's Medical Center" false 146.89
"St. Mary's Medical Center" true 158.4
"VA Hospital" false 152.04
"VA Hospital" true 165.92
입력 인수
A
— 그룹화 변수
벡터
그룹화 변수로, 벡터로 지정됩니다. A
의 고유한 값이 그룹으로 식별됩니다. 다음 표에 나열된 데이터형을 사용하여 그룹화 변수를 지정할 수 있습니다.
그룹을 지정하는 값 | 그룹화 변수의 데이터형 |
---|---|
숫자 | 숫자형 벡터 또는 논리형 벡터 |
텍스트 | string형 배열, 또는 문자형 벡터로 구성된 셀형 배열 |
날짜/시간 |
|
범주 |
|
Bin | 숫자형 값, |
T
— 그룹화 변수
테이블
그룹화 변수로, 테이블로 지정됩니다. findgroups
는 각 테이블 변수를 별도의 그룹화 변수로 취급합니다.
테이블 변수는 숫자형 벡터, 논리형 벡터, string형 벡터, categorical
형 벡터, datetime
형 벡터, duration
형 벡터, calendarDuration
형 벡터, 또는 문자형 벡터로 구성된 셀형 배열일 수 있습니다.
출력 인수
G
— 그룹 번호
양의 정수로 구성된 벡터
그룹 번호로, 양의 정수로 구성된 벡터로 반환됩니다. N
개의 그룹이 그룹화 변수로 식별되면 1과 N
사이의 모든 정수가 그룹을 지정하게 됩니다. 그룹화 변수에 누락값인 string형, 빈 문자형 벡터, NaN
, NaT
또는 정의되지 않은 categorical
형 값이 있으면 G
에는 대응값으로 NaN
이 포함됩니다.
그룹화 변수가 벡터인 경우
G
와 그룹화 변수는 모두 크기가 같습니다.그룹화 변수가 테이블에 있는 경우
G
의 길이는 테이블의 행의 개수와 같습니다.
ID
— 각 그룹을 식별하는 값
정렬된 고유한 값으로 구성된 벡터
각 그룹을 식별하는 값으로, 입력 인수 A
의 정렬된 고유한 값으로 구성된 벡터로 반환됩니다. ID
의 데이터형은 A
의 데이터형과 같습니다.
TID
— 각 그룹을 식별하는 고유한 값 테이블
테이블
각 그룹을 식별하는 고유한 값으로, 테이블로 반환됩니다. TID
의 변수는 T
의 대응하는 변수로부터 정렬된 고유한 값을 갖습니다. 그러나 TID
와 T
에 있는 행의 개수가 같을 필요는 없습니다.
세부 정보
데이터 그룹에 대한 계산
데이터 분석에서는 일반적으로 데이터 그룹에 대한 계산을 수행합니다. 이러한 계산의 경우 하나 이상의 데이터 변수를 데이터 그룹으로 분할하고, 각 그룹에 대해 계산을 수행하고, 결과를 하나 이상의 출력 변수로 조합합니다. 하나 이상의 그룹화 변수를 사용하여 그룹을 지정할 수 있습니다. 그룹화 변수의 고유 값은 데이터 변수의 대응값이 속하는 그룹을 정의합니다.
예를 들어, 다음 도식은 6×1 숫자형 벡터를 두 개의 데이터 그룹으로 분할하고 각 그룹의 평균을 계산한 다음 출력값을 2×1 숫자형 벡터로 조합하는 그룹화된 간단한 계산을 보여줍니다. 6×1 그룹화 변수에는 두 개의 고유한 값 AB
와 XYZ
가 있습니다.
숫자, 텍스트, 날짜/시간, 범주 또는 Bin이 포함된 그룹화 변수를 지정할 수 있습니다.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
이 함수는 tall형 배열을 지원하지만 다음과 같은 제한 사항이 있습니다.
tall형 테이블은 지원되지 않습니다.
G
의 그룹 번호 순서는 메모리 내findgroups
계산에 사용된 순서와 다를 수 있습니다.
자세한 내용은 메모리에 담을 수 없는 큰 데이터를 위한 tall형 배열 항목을 참조하십시오.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2015b에 개발됨
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)