Skip to content

Instantly share code, notes, and snippets.

@Plutor
Created May 7, 2014 14:41
Show Gist options
  • Select an option

  • Save Plutor/d175fd01c2492ee1e784 to your computer and use it in GitHub Desktop.

Select an option

Save Plutor/d175fd01c2492ee1e784 to your computer and use it in GitHub Desktop.
Most called penalties, most total yards, and most average yards in the 2013 season
16.2 Defensive Pass Interference
15.0 Roughing the Kicker
15.0 Interference with Opportunity to Catch
15.0 Illegal Peelback
15.0 Illegal Cut
15.0 Fair Catch Interference
15.0 Face Mask
15.0 Disqualification
15.0 Clipping
14.2 Personal Foul
13.9 Unsportsmanlike Conduct
13.9 Roughing the Passer
13.8 Unnecessary Roughness
13.7 Horse Collar Tackle
13.0 Chop Block
12.7 Intentional Grounding
11.7 Taunting
10.7 Low Block
10.5 Illegal Blindside Block
10.0 Tripping
10.0 Illegal Bat
9.5 Offensive Pass Interference
9.4 Offensive Holding
9.0 Illegal Block Above the Waist
6.7 Illegal Use of Hands
5.2 Illegal Touch Pass
5.1 Player Out of Bounds on Punt
5.0 Running Into the Kicker
5.0 Offside on Free Kick
5.0 Offensive 12 On-field
5.0 Ineligible Downfield Pass
5.0 Ineligible Downfield Kick
5.0 Illegal Shift
5.0 Illegal Formation
5.0 Defensive Delay of Game
4.9 Neutral Zone Infraction
4.9 Illegal Motion
4.9 Illegal Contact
4.9 False Start
4.9 Delay of Game
4.9 Defensive Holding
4.8 Encroachment
4.7 Defensive Offside
4.7 Defensive 12 On-field
4.5 Illegal Substitution
4.4 Illegal Forward Pass
3.0 Invalid Fair Catch Signal
2.5 Illegal Touch Kick
0.0 Kickoff Out of Bounds
620 Offensive Holding
558 False Start
257 Defensive Pass Interference
200 Unnecessary Roughness
170 Defensive Offside
160 Defensive Holding
131 Delay of Game
118 Neutral Zone Infraction
102 Illegal Block Above the Waist
91 Roughing the Passer
90 Face Mask
76 Personal Foul
75 Illegal Use of Hands
69 Offensive Pass Interference
56 Encroachment
55 Illegal Formation
42 Unsportsmanlike Conduct
42 Intentional Grounding
40 Illegal Contact
39 Defensive 12 On-field
32 Horse Collar Tackle
25 Illegal Shift
17 Taunting
16 Player Out of Bounds on Punt
14 Illegal Motion
13 Illegal Substitution
12 Running Into the Kicker
12 Illegal Touch Kick
11 Offensive 12 On-field
10 Offside on Free Kick
9 Illegal Forward Pass
7 Tripping
7 Ineligible Downfield Pass
7 Ineligible Downfield Kick
6 Low Block
6 Fair Catch Interference
5 Illegal Touch Pass
4 Roughing the Kicker
4 Illegal Blindside Block
3 Defensive Delay of Game
3 Clipping
2 Invalid Fair Catch Signal
2 Interference with Opportunity to Catch
2 Illegal Bat
2 Disqualification
2 Chop Block
1 Kickoff Out of Bounds
1 Illegal Peelback
1 Illegal Cut
5836 Offensive Holding
4158 Defensive Pass Interference
2756 Unnecessary Roughness
2719 False Start
1350 Face Mask
1266 Roughing the Passer
1077 Personal Foul
920 Illegal Block Above the Waist
804 Defensive Offside
782 Defensive Holding
656 Offensive Pass Interference
638 Delay of Game
582 Unsportsmanlike Conduct
581 Neutral Zone Infraction
534 Intentional Grounding
503 Illegal Use of Hands
437 Horse Collar Tackle
275 Illegal Formation
270 Encroachment
199 Taunting
196 Illegal Contact
185 Defensive 12 On-field
124 Illegal Shift
90 Fair Catch Interference
82 Player Out of Bounds on Punt
70 Tripping
69 Illegal Motion
64 Low Block
60 Running Into the Kicker
60 Roughing the Kicker
58 Illegal Substitution
55 Offensive 12 On-field
50 Offside on Free Kick
45 Clipping
42 Illegal Blindside Block
40 Illegal Forward Pass
35 Ineligible Downfield Pass
35 Ineligible Downfield Kick
30 Interference with Opportunity to Catch
30 Illegal Touch Kick
30 Disqualification
26 Illegal Touch Pass
26 Chop Block
20 Illegal Bat
15 Illegal Peelback
15 Illegal Cut
15 Defensive Delay of Game
6 Invalid Fair Catch Signal
0 Kickoff Out of Bounds
/PENALTY/ {
if (match($0, /PENALTY on (\w*)(-[^ ]*)? (.*)/, arr)) {
team = arr[1]
player = arr[2]
rest = arr[3]
penalty_index = match(rest, / \(?([0-9]*) [yY]ards?/, arr)
if (penalty_index) {
yards = arr[1]
infraction = substr(rest, 0, penalty_index-1)
total_calls[infraction] += 1
total_yards[infraction] += yards
} else {
print
}
} else {
print
}
}
END {
sort = "sort -nr"
for (infraction in total_calls) {
printf "%5d\t%s\n", total_calls[infraction], infraction | sort
}
close(sort)
print ""
for (infraction in total_yards) {
printf "%5d\t%s\n", total_yards[infraction], infraction | sort
}
close(sort)
print ""
for (infraction in total_calls) {
printf "%5.1f\t%s\n", total_yards[infraction]/total_calls[infraction], infraction | sort
}
close(sort)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment