이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
categorical형 배열 생성하기
이 예제에서는 categorical형 배열을 생성하는 방법을 보여줍니다. categorical
은 유한한 이산 범주 집합에 속하는 값의 데이터를 저장하기 위한 데이터형입니다. 이러한 범주에는 일반적인 순서가 있을 수도 있지만 반드시 그런 것은 아닙니다. categorical형 배열은 데이터를 효율적으로 저장하고 편리하게 조작할 수 있도록 하는 동시에 값에 대한 의미 있는 이름도 유지합니다. 테이블에서 categorical형 배열을 사용하여 행의 그룹을 정의할 수 있습니다.
기본적으로, categorical형 배열은 수학적 정렬(Mathematical Ordering)이 적용되지 않는 범주를 포함합니다. 예를 들어, 애완 동물 범주들로 구성된 이산 집합 ["dog","cat","bird"]
에는 유의미한 수학적 순서가 없으므로 MATLAB®은 사전순 정렬 ["bird","cat","dog"]
를 사용합니다. 순서형 categorical형 배열은 유의미한 수학적 정렬이 적용되는 범주를 포함합니다. 예를 들어, 크기 범주들로 구성된 이산 집합 ["small","medium","large"]
에는 수학적 정렬 small < medium < large
가 적용됩니다.
string형 배열(또는 문자형 벡터로 구성된 셀형 배열)에서 categorical형 배열을 생성하면 선행 공백과 후행 공백이 제거됩니다. 예를 들어, 텍스트 [" cat","dog"]
를 범주로 지정할 경우 이 텍스트를 범주로 변환하면 ["cat","dog"]
가 됩니다.
string형 배열에서 categorical형 배열 생성하기
categorical
함수를 사용하여 숫자형 배열, 논리형 배열, string형 배열, 문자형 벡터로 구성된 셀형 배열, 기존 categorical형 배열 중 하나에서 categorical형 배열을 생성할 수 있습니다.
뉴잉글랜드의 주 이름을 포함하는 1×11 string형 배열을 생성합니다.
state = ["MA","ME","CT","VT","ME","NH","VT","MA","NH","CT","RI"]
state = 1x11 string
Columns 1 through 9
"MA" "ME" "CT" "VT" "ME" "NH" "VT" "MA" "NH"
Columns 10 through 11
"CT" "RI"
string형 배열 state
를 수학적인 순서가 없는 categorical형 배열로 변환합니다.
state = categorical(state)
state = 1x11 categorical
Columns 1 through 9
MA ME CT VT ME NH VT MA NH
Columns 10 through 11
CT RI
변수 state
의 이산 범주를 나열합니다. state
에는 6개의 고유 상태만 나열되어 있으며, 이는 범주가 6개임을 의미합니다. 범주가 사전순으로 나열됩니다.
categories(state)
ans = 6x1 cell
{'CT'}
{'MA'}
{'ME'}
{'NH'}
{'RI'}
{'VT'}
새 요소 및 누락된 요소 추가하기
요소를 원래 string형 배열에 추가합니다. 요소 중 하나는 누락된 문자열이며, <missing>
으로 표시됩니다. NaN
이 숫자형 배열에서 누락값을 나타내듯이 <missing>
은 string형 배열에서 누락값을 나타냅니다.
state = ["MA","ME","CT","VT","ME","NH","VT","MA","NH","CT","RI"]; state = [string(missing) state]; state(13) = "ME"
state = 1x13 string
Columns 1 through 9
<missing> "MA" "ME" "CT" "VT" "ME" "NH" "VT" "MA"
Columns 10 through 13
"NH" "CT" "RI" "ME"
string형 배열을 categorical
형 배열로 변환합니다. 누락된 문자열이 정의되지 않은 범주가 되며, <undefined>
로 표시됩니다. 이는 어떠한 범주에도 속하지 않는 categorical형 배열의 요소를 나타냅니다.
state = categorical(state)
state = 1x13 categorical
Columns 1 through 8
<undefined> MA ME CT VT ME NH VT
Columns 9 through 13
MA NH CT RI ME
string형 배열에서 순서형 categorical형 배열 생성하기
8개 객체의 크기를 포함하는 1×8 string형 배열을 생성합니다.
AllSizes = ["medium","large","small","small","medium",... "large","medium","small"];
string형 배열 AllSizes
에는 3개의 각기 다른 값 "large"
, "medium"
, "small"
이 있습니다. string형 배열을 사용할 경우 small < medium < large
를 간편하게 나타낼 수 있는 방법이 없습니다.
string형 배열 AllSizes
를 순서형 categorical형 배열로 변환합니다. valueset
을 사용하여 범주를 정의하는 값 small
, medium
, large
를 지정합니다. 순서형 categorical형 배열의 경우, 지정되는 첫 번째 범주가 가장 작으며 마지막 범주가 가장 큽니다.
valueset = ["small","medium","large"]; sizeOrd = categorical(AllSizes,valueset,'Ordinal',true)
sizeOrd = 1x8 categorical
Columns 1 through 6
medium large small small medium large
Columns 7 through 8
medium small
categorical형 배열에 포함된 값의 순서 sizeOrd
는 변경되지 않은 상태로 유지됩니다.
categorical형 변수 sizeOrd
의 이산 범주를 나열합니다.
categories(sizeOrd)
ans = 3x1 cell
{'small' }
{'medium'}
{'large' }
범주가 수학적 정렬(Mathematical Ordering) small < medium < large
와 일치하도록 지정된 순서로 나열됩니다.
숫자형 데이터를 비닝(Binning)하여 순서형 categorical형 배열 생성
0과 50 사이에 있는 100개의 난수로 구성된 벡터를 생성합니다.
x = rand(100,1)*50;
discretize
함수를 사용하여 x
의 값을 비닝함으로써 categorical형 배열을 생성합니다. 0과 15 사이의 모든 값을 첫 번째 Bin에 추가하고, 15와 35 사이의 모든 값을 두 번째 Bin에 추가하고, 35와 50 사이의 모든 값을 세 번째 Bin에 추가합니다. 각 Bin은 좌측 끝점은 포함하지만 우측 끝점은 포함하지 않습니다.
catnames = ["small","medium","large"]; binnedData = discretize(x,[0 15 35 50],'categorical',catnames);
binnedData
는 3개의 범주를 갖는 100×1 순서형 categorical형 배열이며 small < medium < large
가 됩니다.
summary
함수를 사용하여 각 범주에 포함된 요소의 개수를 출력합니다.
summary(binnedData)
small 30 medium 35 large 35
다양한 종류의 비닝된 데이터 차트를 만들 수 있습니다. 예를 들어, binnedData
에 대한 원형 차트를 만들어 보겠습니다.
pie(binnedData)
참고 항목
categorical
| categories
| summary
| discretize