Skip to content

Instantly share code, notes, and snippets.

@bayesball
Created August 25, 2018 19:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bayesball/18945005538b5e74d752afabe9d4fdd2 to your computer and use it in GitHub Desktop.
Save bayesball/18945005538b5e74d752afabe9d4fdd2 to your computer and use it in GitHub Desktop.
R function to read in Retrosheet game logs
Headers <- c("Date", "DoubleHeader",
"DayOfWeek", "VisitingTeam",
"VisitingTeamLeague", "VisitingTeamGameNumber",
"HomeTeam", "HomeTeamLeague" ,
"HomeTeamGameNumber", "VisitorRunsScored" ,
"HomeRunsScore", "LengthInOuts",
"DayNight", "CompletionInfo",
"ForfeitInfo", "ProtestInfo" ,
"ParkID", "Attendence" ,
"Duration", "VisitorLineScore",
"HomeLineScore", "VisitorAB",
"VisitorH", "VisitorD" ,
"VisitorT", "VisitorHR",
"VisitorRBI", "VisitorSH",
"VisitorSF", "VisitorHBP",
"VisitorBB", "VisitorIBB",
"VisitorK", "VisitorSB",
"VisitorCS", "VisitorGDP",
"VisitorCI", "VisitorLOB",
"VisitorPitchers", "VisitorER",
"VisitorTER", "VisitorWP",
"VisitorBalks", "VisitorPO",
"VisitorA", "VisitorE" ,
"VisitorPassed", "VisitorDB" ,
"VisitorTP", "HomeAB",
"HomeH", "HomeD",
"HomeT", "HomeHR",
"HomeRBI", "HomeSH",
"HomeSF" , "HomeHBP",
"HomeBB" , "HomeIBB",
"HomeK", "HomeSB" ,
"HomeCS", "HomeGDP",
"HomeCI" , "HomeLOB",
"HomePitchers", "HomeER" ,
"HomeTER", "HomeWP",
"HomeBalks", "HomePO",
"HomeA", "HomeE",
"HomePassed", "HomeDB",
"HomeTP", "UmpireHID",
"UmpireHName", "Umpire1BID",
"Umpire1BName", "Umpire2BID",
"Umpire2BName", "Umpire3BID",
"Umpire3BName", "UmpireLFID",
"UmpireLFName", "UmpireRFID",
"UmpireRFName", "VisitorManagerID",
"VisitorManagerName", "HomeManagerID",
"HomeManagerName", "WinningPitcherID",
"WinningPitcherName", "LosingPitcherID",
"LosingPitcherNAme", "SavingPitcherID",
"SavingPitcherName", "GameWinningRBIID",
"GameWinningRBIName", "VisitorStartingPitcherID",
"VisitorStartingPitcherName", "HomeStartingPitcherID",
"HomeStartingPitcherName", "VisitorBatting1PlayerID",
"VisitorBatting1Name", "VisitorBatting1Position",
"VisitorBatting2PlayerID", "VisitorBatting2Name",
"VisitorBatting2Position", "VisitorBatting3PlayerID",
"VisitorBatting3Name", "VisitorBatting3Position",
"VisitorBatting4PlayerID", "VisitorBatting4Name",
"VisitorBatting4Position", "VisitorBatting5PlayerID",
"VisitorBatting5Name", "VisitorBatting5Position",
"VisitorBatting6PlayerID", "VisitorBatting6Name",
"VisitorBatting6Position", "VisitorBatting7PlayerID",
"VisitorBatting7Name", "VisitorBatting7Position",
"VisitorBatting8PlayerID", "VisitorBatting8Name",
"VisitorBatting8Position", "VisitorBatting9PlayerID",
"VisitorBatting9Name", "VisitorBatting9Position",
"HomeBatting1PlayerID", "HomeBatting1Name",
"HomeBatting1Position", "HomeBatting2PlayerID",
"HomeBatting2Name", "HomeBatting2Position",
"HomeBatting3PlayerID", "HomeBatting3Name",
"HomeBatting3Position", "HomeBatting4PlayerID",
"HomeBatting4Name", "HomeBatting4Position",
"HomeBatting5PlayerID", "HomeBatting5Name",
"HomeBatting5Position", "HomeBatting6PlayerID",
"HomeBatting6Name", "HomeBatting6Position",
"HomeBatting7PlayerID", "HomeBatting7Name",
"HomeBatting7Position", "HomeBatting8PlayerID",
"HomeBatting8Name", "HomeBatting8Position",
"HomeBatting9PlayerID", "HomeBatting9Name",
"HomeBatting9Position", "AdditionalInfo",
"AcquisitionInfo")
# The function load.gamelog will read in the Retrosheet gamelog file for a particular season.
# The inputs are the season and the vector of names of the variables.
load.gamelog <- function(season, headers){
download.file(
url <- paste("http://www.retrosheet.org/gamelogs/gl", season, ".zip"
, sep="")
, destfile <- paste("gl", season, ".zip", sep="")
)
unzip(paste("gl", season, ".zip", sep=""))
gamelog <- read.table(paste("gl", season, ".txt", sep="")
, sep=",", stringsAsFactors=F)
names(gamelog) <- headers
file.remove(paste("gl", season, ".zip", sep=""))
file.remove(paste("gl", season, ".txt", sep=""))
gamelog
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment