
Fielding table
Fielding.RdFielding table
Usage
data(Fielding)Format
A data frame with 174332 observations on the following 18 variables.
playerIDPlayer ID code
yearIDYear
stintplayer's stint (order of appearances within a season)
teamIDTeam; a factor
lgIDLeague; a factor with levels
AAALFLNLPLUAPOSPosition
GGames
GSGames Started
InnOutsTime played in the field expressed as outs
POPutouts
AAssists
EErrors
DPDouble Plays
PBPassed Balls (by catchers)
WPWild Pitches (by catchers)
SBOpponent Stolen Bases (by catchers)
CSOpponents Caught Stealing (by catchers)
ZRZone Rating
Source
Lahman, S. (2026) Lahman's Baseball Database, 1871-2025, 2026 version, https://sabr.org/lahman-database/
Examples
data(Fielding)
# Basic fielding data
require("dplyr")
# Roberto Clemente's fielding profile
# pitching and catching related data removed
# subset(Fielding, playerID == "clemero01")[, 1:13]
Fielding %>%
filter(playerID == "clemero01") %>%
select(1:13)
#> playerID yearID stint teamID lgID POS G GS InnOuts PO A E DP
#> 1 clemero01 1955 1 PIT NL OF 118 107 2892 253 18 6 5
#> 2 clemero01 1956 1 PIT NL 2B 2 0 18 1 1 1 0
#> 3 clemero01 1956 1 PIT NL 3B 1 0 6 0 2 1 0
#> 4 clemero01 1956 1 PIT NL OF 139 130 3499 274 17 13 2
#> 5 clemero01 1957 1 PIT NL OF 109 107 2836 272 9 6 1
#> 6 clemero01 1958 1 PIT NL OF 135 129 3452 312 22 6 3
#> 7 clemero01 1959 1 PIT NL OF 104 102 2700 229 10 13 1
#> 8 clemero01 1960 1 PIT NL OF 142 140 3767 246 19 8 2
#> 9 clemero01 1961 1 PIT NL OF 144 142 3723 256 27 9 5
#> 10 clemero01 1962 1 PIT NL OF 142 138 3686 269 19 8 1
#> 11 clemero01 1963 1 PIT NL OF 151 148 3943 239 11 11 2
#> 12 clemero01 1964 1 PIT NL OF 154 154 4085 289 13 10 2
#> 13 clemero01 1965 1 PIT NL OF 145 143 3810 288 16 10 1
#> 14 clemero01 1966 1 PIT NL OF 154 153 4147 318 17 12 3
#> 15 clemero01 1967 1 PIT NL OF 145 141 3751 273 17 9 4
#> 16 clemero01 1968 1 PIT NL OF 131 128 3477 297 9 5 1
#> 17 clemero01 1969 1 PIT NL OF 135 128 3372 226 14 5 1
#> 18 clemero01 1970 1 PIT NL OF 104 102 2703 189 12 7 2
#> 19 clemero01 1971 1 PIT NL OF 124 120 3243 267 11 2 4
#> 20 clemero01 1972 1 PIT NL OF 94 88 2436 199 5 0 2
# Yadier Molina's fielding profile
# PB, WP, SP and CS apply to catchers
Fielding %>%
subset(playerID == "molinya01") %>%
select(-WP, -ZR)
#> playerID yearID stint teamID lgID POS G GS InnOuts PO A E DP PB
#> 107881 molinya01 2004 1 SLN NL C 51 39 1032 256 16 2 1 4
#> 107882 molinya01 2005 1 SLN NL 1B 1 0 3 0 0 0 0 NA
#> 107883 molinya01 2005 1 SLN NL C 114 111 2878 684 66 7 4 8
#> 107884 molinya01 2006 1 SLN NL 1B 4 0 15 5 0 1 1 NA
#> 107885 molinya01 2006 1 SLN NL C 127 118 3112 734 79 4 6 7
#> 107886 molinya01 2007 1 SLN NL 1B 1 0 3 1 0 0 0 NA
#> 107887 molinya01 2007 1 SLN NL C 107 101 2584 582 63 6 8 7
#> 107888 molinya01 2008 1 SLN NL 1B 2 1 33 13 3 0 1 NA
#> 107889 molinya01 2008 1 SLN NL C 119 114 3006 653 70 10 7 5
#> 107890 molinya01 2009 1 SLN NL 1B 6 0 30 10 1 0 2 NA
#> 107891 molinya01 2009 1 SLN NL C 138 136 3530 884 82 5 6 4
#> 107892 molinya01 2010 1 SLN NL 1B 7 0 21 7 0 0 2 NA
#> 107893 molinya01 2010 1 SLN NL C 135 130 3414 895 79 5 10 7
#> 107894 molinya01 2011 1 SLN NL 1B 2 0 6 3 0 1 0 NA
#> 107895 molinya01 2011 1 SLN NL C 137 132 3450 857 67 5 5 6
#> 107896 molinya01 2012 1 SLN NL 1B 3 0 27 11 2 0 0 NA
#> 107897 molinya01 2012 1 SLN NL C 136 133 3484 962 88 3 12 6
#> 107898 molinya01 2013 1 SLN NL 1B 5 2 54 17 1 0 1 NA
#> 107899 molinya01 2013 1 SLN NL C 131 129 3346 976 63 4 11 3
#> 107900 molinya01 2014 1 SLN NL 1B 1 1 27 10 1 0 0 NA
#> 107901 molinya01 2014 1 SLN NL C 107 106 2795 810 56 2 10 3
#> 107902 molinya01 2015 1 SLN NL C 134 131 3449 1064 56 7 9 4
#> 107903 molinya01 2016 1 SLN NL 1B 2 1 21 10 1 0 0 NA
#> 107904 molinya01 2016 1 SLN NL C 146 142 3655 1113 60 2 5 8
#> 107905 molinya01 2017 1 SLN NL 1B 1 0 6 4 0 0 0 NA
#> 107906 molinya01 2017 1 SLN NL C 133 133 3377 1082 55 7 13 6
#> 107907 molinya01 2018 1 SLN NL 1B 5 0 36 9 2 1 3 NA
#> 107908 molinya01 2018 1 SLN NL C 121 120 3053 966 42 2 8 4
#> 107909 molinya01 2019 1 SLN NL 1B 4 0 24 6 0 0 1 NA
#> 107910 molinya01 2019 1 SLN NL 3B 1 0 3 0 0 0 0 NA
#> 107911 molinya01 2019 1 SLN NL C 111 108 2818 916 30 1 5 4
#> 107912 molinya01 2020 1 SLN NL 1B 2 0 15 3 0 0 0 NA
#> 107913 molinya01 2020 1 SLN NL C 42 42 1012 307 16 5 1 3
#> 107914 molinya01 2021 1 SLN NL 1B 1 0 9 1 1 0 0 NA
#> 107915 molinya01 2021 1 SLN NL C 118 118 3004 869 49 3 10 6
#> 107916 molinya01 2022 1 SLN NL 1B 1 0 3 0 0 0 0 NA
#> 107917 molinya01 2022 1 SLN NL C 77 71 1885 512 25 3 6 1
#> 107918 molinya01 2022 1 SLN NL P 2 0 6 0 0 0 0 NA
#> SB CS
#> 107881 9 8
#> 107882 NA NA
#> 107883 14 25
#> 107884 NA NA
#> 107885 37 29
#> 107886 NA NA
#> 107887 23 27
#> 107888 NA NA
#> 107889 34 18
#> 107890 NA NA
#> 107891 32 22
#> 107892 NA NA
#> 107893 35 33
#> 107894 NA NA
#> 107895 46 19
#> 107896 NA NA
#> 107897 38 35
#> 107898 NA NA
#> 107899 26 20
#> 107900 NA NA
#> 107901 23 21
#> 107902 37 26
#> 107903 NA NA
#> 107904 67 18
#> 107905 NA NA
#> 107906 43 24
#> 107907 NA NA
#> 107908 27 12
#> 107909 NA NA
#> 107910 NA NA
#> 107911 22 8
#> 107912 NA NA
#> 107913 6 5
#> 107914 NA NA
#> 107915 26 18
#> 107916 NA NA
#> 107917 20 13
#> 107918 NA NA
# Pedro Martinez's fielding profile
Fielding %>% subset(playerID == "martipe02")
#> playerID yearID stint teamID lgID POS G GS InnOuts PO A E DP PB WP SB
#> 98248 martipe02 1992 1 LAN NL P 2 1 24 0 0 0 0 NA NA NA
#> 98249 martipe02 1993 1 LAN NL P 65 2 321 4 4 0 1 NA NA NA
#> 98250 martipe02 1994 1 MON NL P 24 23 434 9 15 4 0 NA NA NA
#> 98251 martipe02 1995 1 MON NL P 30 30 584 14 23 2 0 NA NA NA
#> 98252 martipe02 1996 1 MON NL P 33 33 650 11 17 3 1 NA NA NA
#> 98253 martipe02 1997 1 MON NL P 31 31 724 7 31 1 1 NA NA NA
#> 98254 martipe02 1998 1 BOS AL P 33 33 701 11 18 4 3 NA NA NA
#> 98255 martipe02 1999 1 BOS AL P 31 29 640 13 15 1 0 NA NA NA
#> 98256 martipe02 2000 1 BOS AL P 29 29 651 14 28 0 2 NA NA NA
#> 98257 martipe02 2001 1 BOS AL P 18 18 350 5 5 0 0 NA NA NA
#> 98258 martipe02 2002 1 BOS AL P 30 30 598 16 16 2 1 NA NA NA
#> 98259 martipe02 2003 1 BOS AL P 29 29 560 14 20 0 0 NA NA NA
#> 98260 martipe02 2004 1 BOS AL P 33 33 651 16 16 1 0 NA NA NA
#> 98261 martipe02 2005 1 NYN NL P 31 31 651 6 19 0 0 NA NA NA
#> 98262 martipe02 2006 1 NYN NL P 23 23 398 7 13 5 0 NA NA NA
#> 98263 martipe02 2007 1 NYN NL P 5 5 84 1 0 0 0 NA NA NA
#> 98264 martipe02 2008 1 NYN NL P 20 20 327 6 17 0 1 NA NA NA
#> 98265 martipe02 2009 1 PHI NL P 9 9 134 1 6 0 1 NA NA NA
#> CS ZR
#> 98248 NA NA
#> 98249 NA NA
#> 98250 NA NA
#> 98251 NA NA
#> 98252 NA NA
#> 98253 NA NA
#> 98254 NA NA
#> 98255 NA NA
#> 98256 NA NA
#> 98257 NA NA
#> 98258 NA NA
#> 98259 NA NA
#> 98260 NA NA
#> 98261 NA NA
#> 98262 NA NA
#> 98263 NA NA
#> 98264 NA NA
#> 98265 NA NA
# Table of games played by Pete Rose at different positions
with(subset(Fielding, playerID == "rosepe01"), xtabs(G ~ POS))
#> POS
#> 1B 2B 3B OF
#> 939 628 634 1327
# Career total G/PO/A/E/DP for Luis Aparicio
Fielding %>%
filter(playerID == "aparilu01") %>%
select(G, PO, A, E, DP) %>%
summarise(across(everything(), sum))
#> G PO A E DP
#> 1 2583 4548 8016 366 1553
# Top ten 2B/SS in turning DPs
Fielding %>%
subset(POS %in% c("2B", "SS")) %>%
group_by(playerID) %>%
summarise(TDP = sum(DP, na.rm = TRUE)) %>%
arrange(desc(TDP)) %>%
head(., 10)
#> # A tibble: 10 × 2
#> playerID TDP
#> <chr> <int>
#> 1 vizquom01 1775
#> 2 mazerbi01 1706
#> 3 foxne01 1619
#> 4 smithoz01 1590
#> 5 ripkeca01 1565
#> 6 aparilu01 1553
#> 7 randowi01 1547
#> 8 whitalo01 1527
#> 9 doerrbo01 1507
#> 10 morgajo02 1505
# League average fielding statistics, 1961-present
Fielding %>%
filter(yearID >= 1961 & POS != "DH") %>%
select(yearID, lgID, POS, InnOuts, PO, A, E) %>%
group_by(yearID, lgID) %>%
summarise_at(vars(InnOuts, PO, A, E), funs(sum), na.rm = TRUE) %>%
mutate(fpct = round( (PO + A)/(PO + A + E), 3),
OPE = round(InnOuts/E, 3))
#> Warning: `funs()` was deprecated in dplyr 0.8.0.
#> ℹ Please use a list of either functions or lambdas:
#>
#> # Simple named list: list(mean = mean, median = median)
#>
#> # Auto named with `tibble::lst()`: tibble::lst(mean, median)
#>
#> # Using lambdas list(~ mean(., trim = .2), ~ median(., na.rm = TRUE))
#> # A tibble: 130 × 8
#> # Groups: yearID [65]
#> yearID lgID InnOuts PO A E fpct OPE
#> <int> <fct> <int> <int> <int> <int> <dbl> <dbl>
#> 1 1961 AL 389523 43213 17237 1506 0.976 259.
#> 2 1961 NL 297720 33080 13728 1167 0.976 255.
#> 3 1962 AL 391878 43449 17138 1364 0.978 287.
#> 4 1962 NL 391206 43470 17832 1555 0.975 252.
#> 5 1963 AL 392877 43589 16998 1347 0.978 292.
#> 6 1963 NL 392946 43661 17681 1577 0.975 249.
#> 7 1964 AL 394593 43774 17130 1261 0.98 313.
#> 8 1964 NL 392094 43566 17933 1586 0.975 247.
#> 9 1965 AL 392562 43546 17231 1359 0.978 289.
#> 10 1965 NL 395384 43932 18008 1486 0.977 266.
#> # ℹ 120 more rows