더북(TheBook)

summarise()

plyr::summarise( )는 데이터의 요약 정보를 만드는 데 사용하는 함수다. transform( )이 인자로 주어진 계산 결과를 새로운 컬럼에 추가한 데이터 프레임을 반환하는 반면, summarise( )는 계산 결과만을 담은 새로운 데이터 프레임을 반환한다.

baseball 데이터에서 각 선수의 최초 데이터가 몇 년도인지를 조사해보자. 아래 예에서는 데이터를 id마다 그룹 지은 뒤 각 그룹마다 year의 최솟값을 계산한 minyear 컬럼을 생성했다. 연산 시 사용할 함수로 summarise( )를 지정했으므로 그룹을 짓는 변수인 id와 각 그룹의 요약 값 minyear만 저장된 데이터 프레임이 반환됐다.

> head(ddply(baseball, .(id), summarise, minyear=min(year)))
         id minyear
1 aaronha01    1954
2 abernte02    1955
3 adairje01    1958
4 adamsba01    1906
5 adamsbo03    1946
6 adcocjo01    1950

만약 여러 요약 값을 구하고 싶다면 요약 값 계산을 계속 나열한다. 다음은 선수별 최초 데이터가 저장된 연도인 minyear와 최종 데이터가 저장된 연도인 maxyear를 구하는 예다.

> head(ddply(baseball, .(id), summarise,
+            minyear=min(year), maxyear=max(year)))
         id minyear maxyear
1 aaronha01    1954    1976
2 abernte02    1955    1972
3 adairje01    1958    1970
4 adamsba01    1906    1926
5 adamsbo03    1946    1959
6 adcocjo01    1950    1966
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.