Skip to contents

Fielding table

Usage

data(Fielding)

Format

A data frame with 174332 observations on the following 18 variables.

playerID

Player ID code

yearID

Year

stint

player's stint (order of appearances within a season)

teamID

Team; a factor

lgID

League; a factor with levels AA AL FL NL PL UA

POS

Position

G

Games

GS

Games Started

InnOuts

Time played in the field expressed as outs

PO

Putouts

A

Assists

E

Errors

DP

Double Plays

PB

Passed Balls (by catchers)

WP

Wild Pitches (by catchers)

SB

Opponent Stolen Bases (by catchers)

CS

Opponents Caught Stealing (by catchers)

ZR

Zone 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