더북(TheBook)

최빈값

최빈값mode은 데이터에서 가장 자주 나타난 값을 말한다. 최빈값은 table( )을 사용해 각 데이터가 출현한 횟수를 센 분할표Contingency Table를 만들고, which.max( )를 사용해 최대 빈도가 저장된 색인을 찾는 방법으로 구할 수 있다. 이 두 함수에 대해 살펴보자.

표 7-6 데이터의 빈도수

table : 분할표를 작성한다.

table(
  ...  # 팩터로 해석할 수 있는 하나 이상의 객체
)

반환 값은 table 클래스의 인스턴스로, 인자의 ...에 지정한 팩터들의 모든 조합에 대해 빈도수를 구한 결과를 저장하고 있다.

which.max : 최댓값이 저장된 위치의 색인을 반환한다.

which.max(
  x   # 숫자 벡터
)

반환 값은 x에서 최댓값이 저장된 위치의 색인이다.

다음 코드는 문자열 벡터 c(“a”, “b”, “c”, “c”, “c”, “d”, “d”)로부터 가장 자주 출현한 문자열 “c”를 찾는 예다. 최빈값 자체를 구할 때는 names( )를 사용해 분할표에서 각 셀의 이름을 구한 다음, 최댓값이 저장된 셀을 선택했다.

> (x <- factor(c("a", "b", "c", "c", "c", "d", "d")))
[1] a b c c c d d
Levels: a b c d
> table(x)             # 팩터의 각 레벨(level)별 빈도수를 구한다.
x
a b c d
1 1 3 2
> which.max(table(x))  # 가장 큰 값이 저장된 셀의 색인은 3
c
3
> names(table(x))[3]   # 가장 큰 값이 저장된 셀의 이름
[1] "c"
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.