Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ranking observations by a variable within two groups by year

    I am working with some data on NCAA football players. For the purposes of this question, it looks something like this:

    Code:
    * Example generated by -dataex-. To install: ssc install dataex
    clear
    input str25 player_ncaa_pfr int year str22 school_pfr str5 pos_guess_ncaa int(pass_attempts_ncaa carries_ncaa rec_ncaa)
    "Rufus Brown"         1999 "North Carolina" "RB"      0  74  2
    "Deon Dyer"           1999 "North Carolina" "RB"      0  73  7
    "Darrell Jackson"     1999 "Florida"        "WR/TE"   0   2 67
    "Travis Taylor"       1999 "Florida"        "WR/TE"   0   0 34
    "Shaun Alexander"     1999 "Alabama"        "RB"      0 302 25
    "Alex Willis"         1999 "Florida"        "WR/TE"   0   0 24
    "Daniel Davis"        1999 "North Carolina" "RB"      0  69  3
    "Jason Peace"         1999 "North Carolina" "WR/TE"   0   3 23
    "Anthony Saunders"    1999 "North Carolina" "RB"      0  75  2
    "Mal Lawyer"          1999 "Clemson"        "WR/TE"   0   0 39
    "Brian Wofford"       1999 "Clemson"        "WR/TE"   0   6 60
    "Bo Carroll"          1999 "Florida"        "RB"      0  86 10
    "Domonique Williams"  1999 "North Carolina" "RB"      0  74  1
    "Doug Johnson"        1999 "Florida"        "QB"    337  30  0
    "Rod Gardner"         2000 "Clemson"        "WR/TE"   0   4 51
    "Andrew Zow"          2000 "Alabama"        "QB"    249  53  0
    "Alge Crumpler"       2000 "North Carolina" "WR/TE"   0   0 23
    "Jackie Robinson"     2000 "Clemson"        "WR/TE"   0   1 24
    "Jesse Palmer"        2000 "Florida"        "QB"    223  36  0
    "Brandon Russell"     2000 "North Carolina" "RB"      0 145 11
    "Jason McAddley"      2000 "Alabama"        "WR/TE"   0   3 27
    "Willie Parker"       2001 "North Carolina" "RB"      0  83  2
    "Ronald Curry"        2001 "North Carolina" "RB"      0  89  0
    "Andre' Williams"     2001 "North Carolina" "RB"      0 170  5
    "Roscoe Crosby"       2001 "Clemson"        "WR/TE"   0   0 23
    "Travis Zachery"      2001 "Clemson"        "RB"      0 142 45
    "Reche Caldwell"      2001 "Florida"        "WR/TE"   0   5 65
    "Freddie Milons"      2001 "Alabama"        "WR/TE"   0   4 36
    "Kory Bailey"         2001 "North Carolina" "WR/TE"   0   0 44
    "Bosley Allen"        2001 "North Carolina" "WR/TE"   0   0 39
    "Robert Gillespie"    2001 "Florida"        "RB"      0  94 41
    "Ahmaad Galloway"     2001 "Alabama"        "RB"      0 174  3
    "Antonio Carter"      2001 "Alabama"        "WR/TE"   0   0 32
    "Andre Williams"      2001 "North Carolina" "RB"      0 170  5
    "Jabar Gaffney"       2001 "Florida"        "WR/TE"   0   0 67
    "Woodrow Dantzler"    2001 "Clemson"        "QB"    311 206  0
    "Rex Grossman"        2002 "Florida"        "QB"    503  58  0
    "Yusef Kelly"         2002 "Clemson"        "RB"      0 125 18
    "Sam Collins"         2002 "Alabama"        "WR/TE"   0   1 35
    "J.J. McKelvey"       2002 "Clemson"        "WR/TE"   0   0 52
    "Earnest Graham"      2002 "Florida"        "RB"      0 240 22
    "Sam Aiken"           2002 "North Carolina" "WR/TE"   0   0 68
    "Tyler Watts"         2002 "Alabama"        "RB"      0 130  0
    "Taylor Jacobs"       2002 "Florida"        "WR/TE"   0   3 71
    "Santonio Beard"      2002 "Alabama"        "RB"      0 165  5
    "Chesley Borders"     2002 "North Carolina" "WR/TE"   0   1 32
    "Aaron Walker"        2002 "Florida"        "WR/TE"   0   0 27
    "Bernard Rambert"     2002 "Clemson"        "RB"      0 117 11
    "Willie Simmons"      2002 "Clemson"        "QB"    244  59  0
    "Bobby Blizzard"      2002 "North Carolina" "WR/TE"   0   0 28
    "Chad Jasmin"         2003 "Clemson"        "RB"      0 112  7
    "Derrick Hamilton"    2003 "Clemson"        "WR/TE"   0  17 62
    "Carlos Perez"        2003 "Florida"        "WR/TE"   0   4 36
    "Ran Carthon"         2003 "Florida"        "RB"      0 119 21
    "Ben Troupe"          2003 "Florida"        "WR/TE"   0   0 39
    "Jacque Lewis"        2003 "North Carolina" "RB"      0  61 34
    "Triandos Luke"       2003 "Alabama"        "WR/TE"   0   0 32
    "Kevin Youngblood"    2003 "Clemson"        "WR/TE"   0   0 70
    "Dre Fulgham"         2003 "Alabama"        "WR/TE"   0   1 30
    "Shaud Williams"      2003 "Alabama"        "RB"      0 280 24
    "Kelvin Kight"        2003 "Florida"        "WR/TE"   0   1 39
    "Duane Coleman"       2004 "Clemson"        "RB"      0  83 15
    "O.J. Small"          2004 "Florida"        "WR/TE"   0   0 63
    "Darian Durant"       2004 "North Carolina" "QB"    299  81  0
    "Tyrone Prothro"      2004 "Alabama"        "WR/TE"   0  13 25
    "Airese Currie"       2004 "Clemson"        "WR/TE"   0   6 61
    "Ciatrick Fason"      2004 "Florida"        "RB"      0 222 35
    "Kelvin Grant"        2004 "Clemson"        "WR/TE"   0   0 23
    "Ray Hudson"          2004 "Alabama"        "RB"      0  92 11
    "Chad Scott"          2004 "North Carolina" "RB"      0 143 13
    "Charlie Whitehurst"  2005 "Clemson"        "QB"    340  50  0
    "Curtis Baham"        2005 "Clemson"        "WR/TE"   0   0 32
    "Mike Mason"          2005 "North Carolina" "WR/TE"   0   1 22
    "Reggie Merriweather" 2005 "Clemson"        "RB"      0 149  8
    "Brodie Croyle"       2005 "Alabama"        "QB"    339  64  0
    "Jon Hamlett"         2005 "North Carolina" "WR/TE"   0   0 21
    "Jarwarski Pollock"   2005 "North Carolina" "WR/TE"   0   0 30
    "Markus Manson"       2005 "Florida"        "RB"      0  81  9
    "Chad Jackson"        2005 "Florida"        "WR/TE"   0  16 88
    "Matt Baker"          2005 "North Carolina" "QB"    346  79  1
    "Barrington Edwards"  2006 "North Carolina" "RB"      0  91 12
    "Jesse Holley"        2006 "North Carolina" "WR/TE"   0   0 37
    "Chansi Stuckey"      2006 "Clemson"        "WR/TE"   0   8 50
    "Will Proctor"        2006 "Clemson"        "QB"    304  61  0
    "Keith Brown"         2006 "Alabama"        "WR/TE"   0   6 44
    "Dallas Baker"        2006 "Florida"        "WR/TE"   0   0 60
    "Deshawn Wynn"        2006 "Florida"        "RB"      0 143  6
    "Kenneth Darby"       2006 "Alabama"        "RB"      0 210 23
    "Barrington Edwards"  2006 "North Carolina" "RB"      0  91 12
    "Joe Dailey"          2006 "North Carolina" "QB"    195  50  0
    "Jemalle Cornelius"   2006 "Florida"        "WR/TE"   0   4 34
    "Chris Leak"          2006 "Florida"        "QB"    365  77  0
    "Ronnie McGill"       2006 "North Carolina" "RB"      0 192 15
    "Rendrick Taylor"     2007 "Clemson"        "WR/TE"   0   2 25
    "Kestahn Moore"       2007 "Florida"        "RB"      0 104 13
    "Terry Grant"         2007 "Alabama"        "RB"      0 180 26
    "D.J. Hall"           2007 "Alabama"        "WR/TE"   0   2 67
    "Cornelius Ingram"    2007 "Florida"        "WR/TE"   0   0 34
    "Matt Caddell"        2007 "Alabama"        "WR/TE"   0   1 40
    "Mike McCoy"          2007 "Alabama"        "WR/TE"   0   0 28
    end

    I want to rank each player by their position-relevant statistic (passes for QBs, carries for RBs, receptions for WR/TEs) within their position grouping on their team in a given season. For example, in 1999, North Carolina had 5 running backs. I would like my new variable to give Anthony Saunders the rank of 1 since he had the most carries, and Daniel Davis a rank of 5 since he had the least. Meanwhile, North Carolina only had 1 WR/TE in 1999 (in this fake data), Jason Peace, so I would like Jason Peace to get a position rank of 1. And so on...

    I tried:
    Code:
    egen pos_guess_rank_ncaa = rank(pass_attempts_ncaa) if pos_guess_ncaa == "QB", by(school_pfr)
    ..and then was going to do something similar for the other positions. However, this won't rank by school and by year, but only by school.

    Any advice here would be greatly appreciated!
    Last edited by Noah Spencer; 06 Oct 2019, 06:36.

  • #2
    by() accepts two or more arguments. I guess you need

    Code:
     
     egen pos_guess_rank_ncaa = rank(pass_attempts_ncaa) , by(pos_guess_ncaa school_pfr year)
    You may need more thought on what to do with ties. See especially the field option of the rank() function in the egen command.

    Comment


    • #3
      Great, thanks!

      Comment

      Working...
      X