더북(TheBook)

tapply()

tapply( )는 그룹별로 함수를 적용하기 위한 apply 계열 함수다.

표 4-12 tapply( ) 함수

tapply : 벡터 등에 저장된 데이터를 주어진 기준에 따라 그룹으로 묶은 뒤 각 그룹에 함수를 적용하고 그 결과를 반환한다.

tapply(
  X,      # 벡터
  INDEX,  # 데이터를 그룹으로 묶을 색인. 팩터를 지정해야 하며 팩터가 아닌 타입이 지정되면
          # 팩터로 형 변환된다.
  FUN,    # 각 그룹마다 적용할 함수
  ...,    # 추가 인자. 이 인자들은 FUN에 전달된다.
)

반환 값은 배열이다.

다음과 같은 예를 생각해보자. 1부터 10까지의 숫자가 있고 이들이 모두 한 그룹에 속해 있을 때, 이 그룹에 속한 데이터의 합을 구하면 55가 될 것이다.

> tapply(1:10, rep(1, 10), sum)
 1
55

위 코드에서 rep(1, 10)은 1을 10회 반복하는 것을 의미한다. 따라서 숫자 1, 2, 3, …, 10에 대해 동일한 소속 번호 1, 1, 1, …, 1을 부여한 것이다. 그러므로 그룹 1에 속한 데이터의 합은 55(=1+2+3+…+10)다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.