library(Lahman)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(magrittr)

#Q1
head(Pitching)
##    playerID yearID stint teamID lgID  W  L  G GS CG SHO SV IPouts   H  ER HR BB
## 1 bechtge01   1871     1    PH1   NA  1  2  3  3  2   0  0     78  43  23  0 11
## 2 brainas01   1871     1    WS3   NA 12 15 30 30 30   0  0    792 361 132  4 37
## 3 fergubo01   1871     1    NY2   NA  0  0  1  0  0   0  0      3   8   3  0  0
## 4 fishech01   1871     1    RC1   NA  4 16 24 24 22   1  0    639 295 103  3 31
## 5 fleetfr01   1871     1    NY2   NA  0  1  1  1  1   0  0     27  20  10  0  3
## 6 flowedi01   1871     1    TRO   NA  0  0  1  0  0   0  0      3   1   0  0  0
##   SO BAOpp   ERA IBB WP HBP BK  BFP GF   R SH SF GIDP
## 1  1    NA  7.96  NA  7  NA  0  146  0  42 NA NA   NA
## 2 13    NA  4.50  NA  7  NA  0 1291  0 292 NA NA   NA
## 3  0    NA 27.00  NA  2  NA  0   14  0   9 NA NA   NA
## 4 15    NA  4.35  NA 20  NA  0 1080  1 257 NA NA   NA
## 5  0    NA 10.00  NA  0  NA  0   57  0  21 NA NA   NA
## 6  0    NA  0.00  NA  0  NA  0    3  1   0 NA NA   NA
#Q2a
Q2a <- filter(Pitching, SHO>=12)
Q2a
##    playerID yearID stint teamID lgID  W  L  G GS CG SHO SV IPouts   H  ER HR
## 1 bradlge01   1876     1    SL3   NL 45 19 64 64 63  16  0   1719 470  78  3
## 2 galvipu01   1884     1    BFN   NL 46 22 72 72 71  12  0   1909 566 141 23
## 3 morried01   1886     1    PT1   AA 41 20 64 63 63  12  1   1666 455 151  5
## 4 coombja01   1910     1    PHA   AL 31  9 45 38 35  13  1   1059 248  51  0
## 5 alexape01   1915     1    PHI   NL 31 10 49 42 36  12  3   1129 253  51  3
## 6 alexape01   1916     1    PHI   NL 33 12 48 45 38  16  3   1167 323  67  6
## 7 gibsobo01   1968     1    SLN   NL 22  9 34 34 28  13  0    914 198  38 11
##    BB  SO BAOpp  ERA IBB WP HBP BK  BFP GF   R SH SF GIDP
## 1  38 103    NA 1.23  NA 34  NA  0 2269  0 229 NA NA   NA
## 2  63 369    NA 1.99  NA 16  NA  0 2554  0 254 NA NA   NA
## 3 118 326    NA 2.45  NA 22   7  0 2252  1 244 NA NA   NA
## 4 115 224    NA 1.30  NA 10   7  0 1353  6  74 NA NA   NA
## 5  64 241  0.19 1.22  NA  2  10  0 1435  7  86 NA NA   NA
## 6  50 167  0.23 1.55  NA  3  10  0 1500  3  90 NA NA   NA
## 7  62 268  0.18 1.12   6  4   7  0 1161  0  49 NA NA   NA
#Q2b
Q2b <- filter(Pitching, SHO>=12 & ERA<=2)
Q2b
##    playerID yearID stint teamID lgID  W  L  G GS CG SHO SV IPouts   H  ER HR
## 1 bradlge01   1876     1    SL3   NL 45 19 64 64 63  16  0   1719 470  78  3
## 2 galvipu01   1884     1    BFN   NL 46 22 72 72 71  12  0   1909 566 141 23
## 3 coombja01   1910     1    PHA   AL 31  9 45 38 35  13  1   1059 248  51  0
## 4 alexape01   1915     1    PHI   NL 31 10 49 42 36  12  3   1129 253  51  3
## 5 alexape01   1916     1    PHI   NL 33 12 48 45 38  16  3   1167 323  67  6
## 6 gibsobo01   1968     1    SLN   NL 22  9 34 34 28  13  0    914 198  38 11
##    BB  SO BAOpp  ERA IBB WP HBP BK  BFP GF   R SH SF GIDP
## 1  38 103    NA 1.23  NA 34  NA  0 2269  0 229 NA NA   NA
## 2  63 369    NA 1.99  NA 16  NA  0 2554  0 254 NA NA   NA
## 3 115 224    NA 1.30  NA 10   7  0 1353  6  74 NA NA   NA
## 4  64 241  0.19 1.22  NA  2  10  0 1435  7  86 NA NA   NA
## 5  50 167  0.23 1.55  NA  3  10  0 1500  3  90 NA NA   NA
## 6  62 268  0.18 1.12   6  4   7  0 1161  0  49 NA NA   NA
#Q3a
Q3a <- slice(Pitching, 40:50)
Q3a
##     playerID yearID stint teamID lgID  W  L  G GS CG SHO SV IPouts   H  ER HR
## 1  woltery01   1872     1    CL1   NA  3  6 12  8  5   0  0    226 115  51  3
## 2  wrighha01   1872     1    BS1   NA  1  0  7  0  0   0  4     77  26   6  0
## 3  zettlge01   1872     1    TRO   NA 14  8 25 22 17   2  1    563 207  45  2
## 4  zettlge01   1872     2    BR1   NA  1  8  9  9  8   0  0    226 106  30  1
## 5  bechtge01   1873     1    PH2   NA  0  2  3  2  1   0  0     48  27   8  0
## 6  brainas01   1873     1    BL1   NA  5  7 14 14 12   0  0    326 182  50  0
## 7  brittji01   1873     1    BR2   NA 17 36 54 54 51   1  0   1442 696 218  6
## 8  campbhu01   1873     1    ELI   NA  2 16 19 18 18   0  0    495 251  54  6
## 9  cummica01   1873     1    BL1   NA 28 14 42 42 42   1  0   1146 475 119  4
## 10 fergubo01   1873     1    BR2   NA  0  1  4  1  1   0  0     58  41  12  2
## 11 fishech01   1873     1    PH1   NA  3  4 13  5  5   0  2    253  90  17  1
##    BB SO BAOpp  ERA IBB WP HBP BK  BFP GF   R SH SF GIDP
## 1   7  4    NA 6.09  NA  6  NA  0  385  5 106 NA NA   NA
## 2   0  1    NA 2.10  NA  0  NA  0  109  6  12 NA NA   NA
## 3   8 17    NA 2.16  NA  3  NA  0  836  4 132 NA NA   NA
## 4   6  8    NA 3.58  NA  6  NA  0  360  0  62 NA NA   NA
## 5   2  0    NA 4.50  NA  0  NA  0   87  1  24 NA NA   NA
## 6   9  3    NA 4.14  NA  3  NA  0  568  0 139 NA NA   NA
## 7  41 16    NA 4.08  NA 19  NA  0 2353  0 519 NA NA   NA
## 8   8  7    NA 2.95  NA  3  NA  0  852  1 213 NA NA   NA
## 9  33 34    NA 2.80  NA 10  NA  0 1768  0 292 NA NA   NA
## 10  2  0    NA 5.59  NA  0  NA  0  109  3  30 NA NA   NA
## 11 10 14    NA 1.81  NA  6  NA  0  400  8  73 NA NA   NA
#Q3b
Q3b <- Pitching %>% slice(40:50) %>% select(playerID, SHO, ERA)
Q3b
##     playerID SHO  ERA
## 1  woltery01   0 6.09
## 2  wrighha01   0 2.10
## 3  zettlge01   2 2.16
## 4  zettlge01   0 3.58
## 5  bechtge01   0 4.50
## 6  brainas01   0 4.14
## 7  brittji01   1 4.08
## 8  campbhu01   0 2.95
## 9  cummica01   1 2.80
## 10 fergubo01   0 5.59
## 11 fishech01   0 1.81
#Q3c
Q3c <- Pitching %>% slice(40:50) %>% mutate(SOBB=SO/BB) %>% select(playerID, SHO, ERA, SOBB)
Q3c
##     playerID SHO  ERA      SOBB
## 1  woltery01   0 6.09 0.5714286
## 2  wrighha01   0 2.10       Inf
## 3  zettlge01   2 2.16 2.1250000
## 4  zettlge01   0 3.58 1.3333333
## 5  bechtge01   0 4.50 0.0000000
## 6  brainas01   0 4.14 0.3333333
## 7  brittji01   1 4.08 0.3902439
## 8  campbhu01   0 2.95 0.8750000
## 9  cummica01   1 2.80 1.0303030
## 10 fergubo01   0 5.59 0.0000000
## 11 fishech01   0 1.81 1.4000000
#Q3d
Q3d <- bind_rows(Q3b, Q3c)
Q3d
##     playerID SHO  ERA      SOBB
## 1  woltery01   0 6.09        NA
## 2  wrighha01   0 2.10        NA
## 3  zettlge01   2 2.16        NA
## 4  zettlge01   0 3.58        NA
## 5  bechtge01   0 4.50        NA
## 6  brainas01   0 4.14        NA
## 7  brittji01   1 4.08        NA
## 8  campbhu01   0 2.95        NA
## 9  cummica01   1 2.80        NA
## 10 fergubo01   0 5.59        NA
## 11 fishech01   0 1.81        NA
## 12 woltery01   0 6.09 0.5714286
## 13 wrighha01   0 2.10       Inf
## 14 zettlge01   2 2.16 2.1250000
## 15 zettlge01   0 3.58 1.3333333
## 16 bechtge01   0 4.50 0.0000000
## 17 brainas01   0 4.14 0.3333333
## 18 brittji01   1 4.08 0.3902439
## 19 campbhu01   0 2.95 0.8750000
## 20 cummica01   1 2.80 1.0303030
## 21 fergubo01   0 5.59 0.0000000
## 22 fishech01   0 1.81 1.4000000
#Bonus Questions
Teams.new <- mutate(Teams, WP_BPT = R^2/(R^2+RA^2), WP = W/G, dif = WP_BPT - WP)
dif2015 <-Teams.new %>% filter(yearID==2015) %>% select (dif)
dif2015
##             dif
## 1   0.017230419
## 2  -0.051157805
## 3   0.014221873
## 4   0.015187443
## 5  -0.028636420
## 6  -0.036556250
## 7   0.023702508
## 8   0.019037858
## 9   0.012876812
## 10 -0.035591350
## 11  0.050985337
## 12 -0.025837885
## 13 -0.035169249
## 14 -0.011034037
## 15  0.011507138
## 16  0.021542581
## 17 -0.015210985
## 18  0.008014789
## 19 -0.001700324
## 20  0.055665860
## 21 -0.014374263
## 22 -0.027299081
## 23 -0.015242187
## 24 -0.019657417
## 25  0.033494199
## 26 -0.014304264
## 27  0.007728046
## 28 -0.031082281
## 29  0.064719889
## 30  0.038345514
dif2016 <-Teams.new %>% filter(yearID==2016) %>% select (dif)
dif2016
##              dif
## 1  -0.0093803058
## 2  -0.0126483884
## 3  -0.0295139380
## 4   0.0413923456
## 5  -0.0021721165
## 6   0.0428503375
## 7  -0.0069772750
## 8  -0.0146738278
## 9   0.0282400640
## 10 -0.0144546700
## 11 -0.0023823713
## 12 -0.0266573098
## 13  0.0362850009
## 14  0.0018423894
## 15 -0.0108694628
## 16  0.0053091183
## 17  0.0332422471
## 18 -0.0344334435
## 19  0.0048148638
## 20 -0.0018619994
## 21 -0.0682864401
## 22 -0.0009764205
## 23  0.0227459921
## 24  0.0104211238
## 25  0.0251279842
## 26  0.0139815312
## 27  0.0506699447
## 28 -0.0811636565
## 29  0.0156036467
## 30  0.0220897999
dif2017 <-Teams.new %>% filter(yearID==2017) %>% select (dif)
dif2017
##              dif
## 1   0.0288236285
## 2  -0.0015652802
## 3  -0.0245957359
## 4   0.0059302367
## 5   0.0121292461
## 6   0.0152339616
## 7   0.0090941874
## 8   0.0481564768
## 9   0.0052652333
## 10  0.0082534857
## 11 -0.0024743765
## 12 -0.0532275995
## 13  0.0068775608
## 14 -0.0039682065
## 15 -0.0027878608
## 16 -0.0063862294
## 17 -0.0078527166
## 18  0.0665243930
## 19 -0.0116882421
## 20 -0.0183827499
## 21  0.0303357833
## 22 -0.0079039931
## 23 -0.0843122464
## 24  0.0040668731
## 25  0.0090176504
## 26  0.0257978443
## 27 -0.0009798703
## 28  0.0079933690
## 29 -0.0305141869
## 30 -0.0011229959
dif2018 <-Teams.new %>% filter(yearID==2018) %>% select (dif)
dif2018
##              dif
## 1   0.0304272152
## 2   0.0161064968
## 3   0.0370378931
## 4  -0.0196298154
## 5  -0.0083285215
## 6  -0.0008763211
## 7   0.0057632823
## 8   0.0526947419
## 9  -0.0353434717
## 10 -0.0099148699
## 11  0.0543682783
## 12  0.0117017134
## 13  0.0054798391
## 14  0.0702473733
## 15 -0.0448690501
## 16 -0.0220267593
## 17 -0.0059215912
## 18  0.0007604987
## 19  0.0022875747
## 20 -0.0060983500
## 21 -0.0300783279
## 22 -0.0100387915
## 23 -0.0145305825
## 24 -0.0738637038
## 25 -0.0239513213
## 26  0.0035837626
## 27 -0.0042959477
## 28  0.0167299950
## 29 -0.0299302837
## 30  0.0548507881
dif2019 <-Teams.new %>% filter(yearID==2019) %>% select (dif)
dif2019
##              dif
## 1   0.0202049255
## 2  -0.0290204291
## 3   0.0224306836
## 4   0.0236272890
## 5  -0.0272057733
## 6   0.0445854558
## 7   0.0299552393
## 8   0.0039857689
## 9  -0.0065503982
## 10 -0.0038823619
## 11  0.0133915232
## 12  0.0231663591
## 13 -0.0047005449
## 14  0.0219537105
## 15  0.0149690530
## 16 -0.0474283261
## 17 -0.0154727158
## 18 -0.0162764933
## 19  0.0044320338
## 20  0.0081793370
## 21 -0.0127530272
## 22 -0.0168336252
## 23 -0.0044555546
## 24 -0.0009786287
## 25 -0.0405012758
## 26  0.0094362526
## 27 -0.0137898752
## 28 -0.0217005729
## 29  0.0210642536
## 30  0.0184207075