분할표 작성

    분할표를 작성하는 함수에는 table( ), xtabs( )가 있다. table( )은 ‘7.2.3 최빈값’ 절에서 보인 바 있다. 여기서는 xtabs( )를 주로 살펴본다.

    표 7-9 분할표

    xtabs : 포뮬러를 사용해 분할표를 작성한다.

    xtabs(
      formula,  # L1 ~ R1 + R2 + R3 형태의 포뮬러다. R1, R2, R3 등은 분할표의 분류를
                # 나타내는 변수들이다. "~"의 왼쪽에 빈도를 나타내는 변수를 적을 수 있다.
      data,     # 포뮬러를 적용할 데이터
    )

    반환 값은 분할표다.

    다음은 table( )을 사용해 주어진 벡터에서 a, b, c의 출현 횟수를 세는 간단한 예다.

    > table(c("a", "b", "b", "b", "c", "c", "d"))
    a b c d
    1 3 2 1
    

    xtabs( )는 포뮬러를 사용해 데이터를 지정할 수 있다. 예를 들어, x, y라는 두 변수가 있고 (x, y)에 대한 도수가 num에 저장되어 있을 때, 이 데이터로부터 분할표를 만드는 포뮬러는 num ~ x + y다. 다음은 이 포뮬러를 사용해 분할표를 작성하는 예다.

    > d <- data.frame(x=c("1", "2", "2", "1"),
    +                 y=c("A", "B", "A", "B"),
    +                 num=c(3, 5, 8, 7))
    > (xtabs(num ~ x + y, data=d))
       y
    x  A B
     1 3 7
     2 8 5
    

    만약 도수를 나타내는 컬럼이 따로 없고, 각 관찰 결과가 서로 다른 행으로 표현되어 있다면 ‘~ 변수 + 변수 …’ 형태로 포뮬러를 작성한다. 다음 코드는 x 값이 A 또는 B인 각 경우의 수를 세는 예를 보여준다.

    > (d2 <- data.frame(x=c("A", "A", "A", "B", "B")))
      x
    1 A
    2 A
    3 A
    4 B
    5 B
    > (xtabs(~ x, d2))
    x
    A B
    3 2
    
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.