Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- retrieveYearlyBaseballStats <- function(year){
- require(RMySQL)
- mydb = dbConnect(MySQL(), user='root', password='marinecore', dbname='fangraphs_stats_parallel', host='localhost')
- batter_sql <- "
- SELECT
- non_pitcher_game_logs.*,
- IF(non_pitcher_game_logs.home_or_away = 'opposing_team', non_pitcher_game_logs.Opp, non_pitcher_game_logs.Team) stadium,
- opp_fielding.*
- FROM
- (SELECT
- rotoguru_player_id,
- CONCAT(
- IF(REPLACE(Team, '@', '') > REPLACE(Opp, '@', ''), REPLACE(Team, '@', ''), REPLACE(Opp, '@', '')),
- '_', Date, '_',
- IF(REPLACE(Team, '@', '') > REPLACE(Opp, '@', ''), REPLACE(Opp, '@', ''), REPLACE(Team, '@', ''))) game_id,
- CASE
- WHEN REPLACE(Team, '@', '') = 'ANA' THEN 'Angels'
- WHEN REPLACE(Team, '@', '') = 'ARI' THEN 'Diamondbacks'
- WHEN REPLACE(Team, '@', '') = 'ATL' THEN 'Braves'
- WHEN REPLACE(Team, '@', '') = 'BAL' THEN 'Orioles'
- WHEN REPLACE(Team, '@', '') = 'BOS' THEN 'Red Sox'
- WHEN REPLACE(Team, '@', '') = 'CHC' THEN 'Cubs'
- WHEN REPLACE(Team, '@', '') = 'CHW' THEN 'White Sox'
- WHEN REPLACE(Team, '@', '') = 'CIN' THEN 'Reds'
- WHEN REPLACE(Team, '@', '') = 'CLE' THEN 'Indians'
- WHEN REPLACE(Team, '@', '') = 'COL' THEN 'Rockies'
- WHEN REPLACE(Team, '@', '') = 'DET' THEN 'Tigers'
- WHEN REPLACE(Team, '@', '') = 'FLA' THEN 'Marlins'
- WHEN REPLACE(Team, '@', '') = 'HOU' THEN 'Astros'
- WHEN REPLACE(Team, '@', '') = 'KCR' THEN 'Royals'
- WHEN REPLACE(Team, '@', '') = 'LAA' THEN 'Angels'
- WHEN REPLACE(Team, '@', '') = 'LAD' THEN 'Dodgers'
- WHEN REPLACE(Team, '@', '') = 'MIA' THEN 'Marlins'
- WHEN REPLACE(Team, '@', '') = 'MIL' THEN 'Brewers'
- WHEN REPLACE(Team, '@', '') = 'MIN' THEN 'Twins'
- WHEN REPLACE(Team, '@', '') = 'NYM' THEN 'Mets'
- WHEN REPLACE(Team, '@', '') = 'NYY' THEN 'Yankees'
- WHEN REPLACE(Team, '@', '') = 'OAK' THEN 'Athletics'
- WHEN REPLACE(Team, '@', '') = 'PHI' THEN 'Phillies'
- WHEN REPLACE(Team, '@', '') = 'PIT' THEN 'Pirates'
- WHEN REPLACE(Team, '@', '') = 'SDP' THEN 'Padres'
- WHEN REPLACE(Team, '@', '') = 'SEA' THEN 'Pirates'
- WHEN REPLACE(Team, '@', '') = 'SFG' THEN 'Giants'
- WHEN REPLACE(Team, '@', '') = 'STL' THEN 'Cardinals'
- WHEN REPLACE(Team, '@', '') = 'TEX' THEN 'Rangers'
- WHEN REPLACE(Team, '@', '') = 'TOR' THEN 'Blue Jays'
- WHEN REPLACE(Team, '@', '') = 'WSN' THEN 'Nationals'
- ELSE REPLACE(Team, '@', '') END Team_full,
- CASE
- WHEN REPLACE(Opp, '@', '') = 'ANA' THEN 'Angels'
- WHEN REPLACE(Opp, '@', '') = 'ARI' THEN 'Diamondbacks'
- WHEN REPLACE(Opp, '@', '') = 'ATL' THEN 'Braves'
- WHEN REPLACE(Opp, '@', '') = 'BAL' THEN 'Orioles'
- WHEN REPLACE(Opp, '@', '') = 'BOS' THEN 'Red Sox'
- WHEN REPLACE(Opp, '@', '') = 'CHC' THEN 'Cubs'
- WHEN REPLACE(Opp, '@', '') = 'CHW' THEN 'White Sox'
- WHEN REPLACE(Opp, '@', '') = 'CIN' THEN 'Reds'
- WHEN REPLACE(Opp, '@', '') = 'CLE' THEN 'Indians'
- WHEN REPLACE(Opp, '@', '') = 'COL' THEN 'Rockies'
- WHEN REPLACE(Opp, '@', '') = 'DET' THEN 'Tigers'
- WHEN REPLACE(Opp, '@', '') = 'FLA' THEN 'Marlins'
- WHEN REPLACE(Opp, '@', '') = 'HOU' THEN 'Astros'
- WHEN REPLACE(Opp, '@', '') = 'KCR' THEN 'Royals'
- WHEN REPLACE(Opp, '@', '') = 'LAA' THEN 'Angels'
- WHEN REPLACE(Opp, '@', '') = 'LAD' THEN 'Dodgers'
- WHEN REPLACE(Opp, '@', '') = 'MIA' THEN 'Marlins'
- WHEN REPLACE(Opp, '@', '') = 'MIL' THEN 'Brewers'
- WHEN REPLACE(Opp, '@', '') = 'MIN' THEN 'Twins'
- WHEN REPLACE(Opp, '@', '') = 'NYM' THEN 'Mets'
- WHEN REPLACE(Opp, '@', '') = 'NYY' THEN 'Yankees'
- WHEN REPLACE(Opp, '@', '') = 'OAK' THEN 'Athletics'
- WHEN REPLACE(Opp, '@', '') = 'PHI' THEN 'Phillies'
- WHEN REPLACE(Opp, '@', '') = 'PIT' THEN 'Pirates'
- WHEN REPLACE(Opp, '@', '') = 'SDP' THEN 'Padres'
- WHEN REPLACE(Opp, '@', '') = 'SEA' THEN 'Pirates'
- WHEN REPLACE(Opp, '@', '') = 'SFG' THEN 'Giants'
- WHEN REPLACE(Opp, '@', '') = 'STL' THEN 'Cardinals'
- WHEN REPLACE(Opp, '@', '') = 'TEX' THEN 'Rangers'
- WHEN REPLACE(Opp, '@', '') = 'TOR' THEN 'Blue Jays'
- WHEN REPLACE(Opp, '@', '') = 'WSN' THEN 'Nationals'
- ELSE REPLACE(Opp, '@', '') END Opp_full,
- Team,
- Opp,
- CASE
- WHEN Opp like '%%@%%' THEN REPLACE(Opp, '@', '')
- ELSE REPLACE(Team, '@', '') END home_or_away,
- Date,
- CAST(BO AS DECIMAL) BO,
- CAST(Pos AS DECIMAL) Pos,
- CAST(G AS DECIMAL) G,
- CAST(AB AS DECIMAL) AB,
- CAST(H AS DECIMAL) H,
- CAST(1B AS DECIMAL) 1B,
- CAST(2B AS DECIMAL) 2B,
- CAST(3B AS DECIMAL) 3B,
- CAST(PA AS DECIMAL) PA,
- CAST(HR AS DECIMAL) HR,
- CAST(R AS DECIMAL) R,
- CAST(RBI AS DECIMAL) RBI,
- CAST(BB AS DECIMAL) BB,
- CAST(IBB AS DECIMAL) IBB,
- CAST(SO AS DECIMAL) SO,
- CAST(HBP AS DECIMAL) HBP,
- CAST(SF AS DECIMAL) SF,
- CAST(SH AS DECIMAL) SH,
- CAST(GDP AS DECIMAL) GDP,
- CAST(SB AS DECIMAL) SB,
- CAST(CS AS DECIMAL) CS,
- CAST(AVG AS DECIMAL) AVG
- FROM
- game_logs_expanded_non_pitcher_game_logs_expanded
- WHERE
- Date > '%d-01-01' AND
- Date != 'Total' AND
- CONCAT(Opp, '_', Date) IS NOT NULL) non_pitcher_game_logs
- JOIN
- (SELECT
- CAST(ARM AS DECIMAL) opp_fielding_ARM,
- CAST(BIZ AS DECIMAL) opp_fielding_BIZ,
- CAST(DPR AS DECIMAL) opp_fielding_DPR,
- CAST(DRS AS DECIMAL) opp_fielding_DRS,
- CAST(Def AS DECIMAL) opp_fielding_Def,
- CAST(ErrR AS DECIMAL) opp_fielding_ErrR,
- CAST(Inn AS DECIMAL) opp_fielding_Inn,
- CAST(OOZ AS DECIMAL) opp_fielding_OOZ,
- CAST(Plays AS DECIMAL) opp_fielding_Plays,
- CAST(RZR AS DECIMAL) opp_fielding_RZR,
- CAST(RngR AS DECIMAL) opp_fielding_RngR,
- Team opp_fielding_Team,
- CAST(UZR AS DECIMAL) opp_fielding_UZR,
- CAST(UZR_150 AS DECIMAL) opp_fielding_UZR_150,
- CAST(pound AS DECIMAL) opp_fielding_pound,
- CAST(rARM AS DECIMAL) opp_fielding_rARM,
- CAST(rGDP AS DECIMAL) opp_fielding_rGDP,
- CAST(rGFP AS DECIMAL) opp_fielding_rGFP,
- CAST(rPM AS DECIMAL) opp_fielding_rPM,
- CAST(rSB AS DECIMAL) opp_fielding_rSB,
- Year opp_fielding_Year
- FROM
- teams_fielding_advanced
- WHERE
- Year = '%d'
- ) opp_fielding
- ON
- opp_fielding.opp_fielding_Team = non_pitcher_game_logs.Opp_full
- "
- batter_sql <- sprintf(batter_sql, year, year-1)
- rs <- dbSendQuery(mydb, batter_sql)
- df_batting <- fetch(rs, n=-1)
- pitcher_sql <- "
- SELECT
- pitcher_season_stats.*,
- pitcher_advanced_season_stats.pitcher_K_9,
- pitcher_advanced_season_stats.pitcher_BB_9,
- pitcher_advanced_season_stats.pitcher_K_BB,
- pitcher_advanced_season_stats.pitcher_HR_9,
- pitcher_advanced_season_stats.pitcher_K_percent_,
- pitcher_advanced_season_stats.pitcher_BB_percent_,
- pitcher_advanced_season_stats.pitcher_AVG,
- pitcher_advanced_season_stats.pitcher_WHIP,
- pitcher_advanced_season_stats.pitcher_BABIP,
- pitcher_advanced_season_stats.pitcher_LOB_percent_,
- pitcher_advanced_season_stats.pitcher_ERA_,
- pitcher_advanced_season_stats.pitcher_FIP_,
- pitcher_advanced_season_stats.pitcher_FIP,
- pitcher_for_game.game_id
- FROM
- (SELECT
- CAST(W AS DECIMAL) pitcher_season_W,
- CAST(L AS DECIMAL) pitcher_season_L,
- CAST(ERA AS DECIMAL) pitcher_season_ERA,
- CAST(G AS DECIMAL) pitcher_season_G,
- CAST(GS AS DECIMAL) pitcher_season_GS,
- CAST(CG AS DECIMAL) pitcher_season_CG,
- CAST(ShO AS DECIMAL) pitcher_season_ShO,
- CAST(SV AS DECIMAL) pitcher_season_SV,
- CAST(HLD AS DECIMAL) pitcher_season_HLD,
- CAST(BS AS DECIMAL) pitcher_season_BS,
- CAST(IP AS DECIMAL) pitcher_season_IP,
- CAST(TBF AS DECIMAL) pitcher_season_TBF,
- CAST(H AS DECIMAL) pitcher_season_H,
- CAST(R AS DECIMAL) pitcher_season_R,
- CAST(ER AS DECIMAL) pitcher_season_ER,
- CAST(HR AS DECIMAL) pitcher_season_HR,
- CAST(BB AS DECIMAL) pitcher_season_BB,
- CAST(IBB AS DECIMAL) pitcher_season_IBB,
- CAST(HBP AS DECIMAL) pitcher_season_HBP,
- CAST(WP AS DECIMAL) pitcher_season_WP,
- CAST(BK AS DECIMAL) pitcher_season_BK,
- CAST(SO AS DECIMAL) pitcher_season_SO,
- rotoguru_player_id pitcher_season_rotoguru_player_id,
- Team pitcher_Opp_full
- FROM
- season_pitcher_standard
- WHERE
- Team IN ('2 Teams','Rays', 'Angels', 'Diamondbacks' , 'Braves' , 'Orioles' , 'Red Sox' , 'Cubs', 'White Sox', 'Reds', 'Indians', 'Rockies', 'Tigers', 'Marlins', 'Astros', 'Royals', 'Angels', 'Dodgers', 'Marlins', 'Brewers', 'Twins', 'Mets', 'Yankees', 'Athletics', 'Phillies', 'Pirates', 'Padres', 'Pirates', 'Giants', 'Cardinals', 'Rangers', 'Blue Jays', 'Nationals') AND
- Season = '%d'
- ) pitcher_season_stats
- JOIN
- (SELECT
- CAST(K_9 AS DECIMAL) pitcher_K_9,
- CAST(BB_9 AS DECIMAL) pitcher_BB_9,
- CAST(K_BB AS DECIMAL) pitcher_K_BB,
- CAST(HR_9 AS DECIMAL) pitcher_HR_9,
- CAST(K_percent_ AS DECIMAL) pitcher_K_percent_,
- CAST(BB_percent_ AS DECIMAL) pitcher_BB_percent_,
- CAST(K_BB_percent_ AS DECIMAL) pitcher_K_BB_percent_,
- CAST(AVG AS DECIMAL) pitcher_AVG,
- CAST(WHIP AS DECIMAL) pitcher_WHIP,
- CAST(BABIP AS DECIMAL) pitcher_BABIP,
- CAST(LOB_percent_ AS DECIMAL) pitcher_LOB_percent_,
- CAST(ERA_ AS DECIMAL) pitcher_ERA_,
- CAST(FIP_ AS DECIMAL) pitcher_FIP_,
- CAST(FIP AS DECIMAL) pitcher_FIP,
- rotoguru_player_id
- FROM
- season_pitcher_advanced
- WHERE
- Team IN ('2 Teams','Rays', 'Angels', 'Diamondbacks' , 'Braves' , 'Orioles' , 'Red Sox' , 'Cubs', 'White Sox', 'Reds', 'Indians', 'Rockies', 'Tigers', 'Marlins', 'Astros', 'Royals', 'Angels', 'Dodgers', 'Marlins', 'Brewers', 'Twins', 'Mets', 'Yankees', 'Athletics', 'Phillies', 'Pirates', 'Padres', 'Pirates', 'Giants', 'Cardinals', 'Rangers', 'Blue Jays', 'Nationals') AND
- Season = '%d') pitcher_advanced_season_stats
- ON
- pitcher_advanced_season_stats.rotoguru_player_id = pitcher_season_stats.pitcher_season_rotoguru_player_id
- JOIN
- (SELECT
- rotoguru_player_id,
- CONCAT(
- IF(REPLACE(Team, '@', '') > REPLACE(Opp, '@', ''), REPLACE(Team, '@', ''), REPLACE(Opp, '@', '')),
- '_', Date, '_',
- IF(REPLACE(Team, '@', '') > REPLACE(Opp, '@', ''), REPLACE(Opp, '@', ''), REPLACE(Team, '@', ''))) game_id
- FROM
- game_logs_expanded_pitcher_games_logs_expanded
- WHERE
- Date > '%d-01-01' AND
- GS = 1 AND
- CONCAT(Team, '_', Date) IS NOT NULL) pitcher_for_game
- ON
- pitcher_for_game.rotoguru_player_id = pitcher_season_stats.pitcher_season_rotoguru_player_id"
- pitcher_sql <- sprintf(pitcher_sql, year-1, year-1, year)
- rs <- dbSendQuery(mydb, pitcher_sql)
- df_pitching <- fetch(rs, n=-1)
- df <- merge(df_pitching, df_batting, all=TRUE)
- dbDisconnect(mydb)
- return(df)
- }
- df_recent <- retrieveYearlyBaseballStats(2016)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement