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