subset()
이름에서 쉽게 알 수 있듯이 subset( )은 각 분할별로 데이터를 추출하는 데 사용한다. subset( )에 조건을 지정하면 그룹별로 조건을 만족하는 행만 추출된다.
다음은 각 선수별로 가장 많은 수의 게임을 플레이한 해의 기록을 찾는 예다. baseball을 id별로 그룹 지은 뒤 가장 많은 게임의 수를 max(g)로 구하고 현재 행의 게임 수가 max(g)와 같은 행만 subset( )으로 선택했다.
> head(ddply(baseball, .(id), subset, g==max(g)))
id year stint team lg g ab r h X2b X3b hr rbi sb cs bb so ibb hbp sh sf gidp
1 aaronha01 1963 1 ML1 NL 161 631 121 201 29 4 44 130 31 5 78 94 18 0 0 5 11
2 abernte02 1965 1 CHN NL 84 18 1 3 0 0 0 2 0 0 0 7 0 1 3 0 0
3 adairje01 1965 1 BAL AL 157 582 51 151 26 3 7 66 6 4 35 65 7 2 4 2 26
4 adamsba01 1913 1 PIT NL 43 114 13 33 6 2 0 13 0 NA 1 16 NA 0 3 NA NA
5 adamsbo03 1952 1 CIN NL 154 637 85 180 25 4 6 48 11 9 49 67 NA 0 8 NA 15
6 adcocjo01 1953 1 ML1 NL 157 590 71 168 33 6 18 80 3 2 42 82 NA 2 6 NA 22