더북(TheBook)

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
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.