R Markdown

Tipo de paquete: Sean ‘Lahman’

Versión 6.0-0

Fecha 2017-08-07

Equipo Lahman: Michael Friendly, Dennis Muyphy, Martin Monkman, Chris Dalzell

URL: http://lahman.r-forge.r-project.org/

Descripción del paquete: Proporciona tablas de la “Base de datos de béisbol Sean Lahman”, ofrece una variedad de desafíos interesantes y oportunidades para el procesamiento y visualización de datos en R.. Utiliza los datos de pitcheo, bateo y fielding, entre otras como de rendimiento y otras tablas desde 1871 hasta 2015, según lo registrado en el 2016 Versión de la base de datos.

Esta base de datos contiene estadísticas de lanzamiento, bateo y fildeo para las Grandes Ligas de Béisbol desde 1871 hasta el 2016. Incluye datos de las dos ligas actuales (estadounidense y nacional), las otras cuatro ligas principales (Asociación Americana, Asociación Sindical, Liga de Jugadores y Liga Federal), y la Asociación Nacional de 1871-1875. Fue creada por Sean Lahman, quien fue pionero en el esfuerzo por hacer estadísticas de béisbol. Libre acceso al público en general. Lo que comenzó como un esfuerzo de un solo hombre en 1994 ha crecido enormemente, y ahora un equipo de investigadores ha reunido sus esfuerzos para hacer de este el más grande. En la versión actual, los ejemplos hacen un uso extensivo del paquete dplyr para la manipulación de datos (tabulación, consultas, resúmenes, fusión, etc.), que refleja el diseño de la base de datos relacional original y ggplot2 para gráficos.

Detalles

La forma principal de esta base de datos es una base de datos relacionada en formato de Microsoft Access. El diseño sigue estos principios generales: A cada jugador se le asigna un código único (ID de jugador). Toda la información está relacionada en otras tablas con ese jugador y está etiquetada con su ID de jugador. Entonces todos los ID están vinculados a nombres y fechas de nacimiento en la tabla principal. La base de datos se compone de las siguientes tablas principales:

1. Data(master):19105 observaciones con 26 variables que consta de nombres de jugadores, fecha de nacimiento e información biográfica. Este archivo se usa para obtener detalles sobre jugadores enumerados en Batting, Pitching y otros archivos donde los jugadores son identificados solo por jugadorID, también hay variables como peso del jugador en libras, altura del jugador en pulgadas, cuidad dónde murió el jugador, estado dónde murió el jugador.

2. Data(batting): 102,816 observaciones con 22 variables que consta de: número de juegos en los que un jugador jugó, homeruns, golpe por lanzamiento.

3. Data(pitching): 44,963 observaciones con 30 variables que consta de: juegos completos, perdidos, ganados, comenzados.

4. Data (fielding): 136,815 observaciones con 18 variables que consta de: posición, juegos, errores, clasificación de la zona.

También se proporciona una colección de otras tablas que a continuación se desarrollan brevemente:


TEAMS (EQUIPOS)

1. Data(Teams): Estadísticas y posiciones anuales de los equipos: 2835 observaciones con 48 variables como por ejemplo: año, posición de la clasificación final, juegos jugados, juegos jugados en casa, juegos ganados, juegos perdidos, bases robadas.

2. Data (TeamsHalf): Datos de la temporada de los equipos: 52 observaciones con 10 variables como por ejemplo: año, división, juegos jugados, primera o segunda mitad de la temporada, liga.

3. Data (TeamsFranchises): Información sobre franquicias de equipos: 120 observaciones con 4 variables como por ejemplo: ID franquicia, nombre de la franquicia, si el equipo está actualmente activo (S o N), identificación de la franquicia del equipo de la Asociación Nacional jugado como…

POST-SEASON PLAY(JUEGOS DE POST-TEMPORADA)

1. Data (battingpost): 13,543 observaciones con 22 variables como por ejemplo, bases robadas, base en bolas, strikeouts, intentional walks, hit by pitch.

2. Data (pitchingpost): 5,271 observaciones con 30 variables como por ejemplo, juegos comenzados, juegos completos, homeruns, strikeouts.

3. Data (Fieldingpost): 12,714 observaciones con 17 variables como por ejemplo: posición, juegos, errores, putouts.

4. Data (Seriespost): 316 observaciones con 9 variables como por ejemplo, equipo que ganó la serie, liga que ganó la serie, equipo que perdió la serie, liga que perdió la serie.

AWARDS (PREMIOS)

1. Data (AwardsManager): 179 observaciones con 6 variables que consta de: ID del gerente, nombre del premio ganado, año, el premio fue empate (S o N).

2. Data (AwardsPlayers): 6,158 observaciones con 6 variables: ID del jugador, nombre del premio ganado, año, notas sobre el premio, premio fue empate (S o N).

3. Data (AwardsSharemanagers): 425 observaciones con 7 variables: año, ID del gerente, número de puntos recibidos, número máximo de puntos posibles, número de votos en primer lugar.

4. Data (AwardsShareplayers): 6,879 observaciones con 7 variables: año ID del jugador, número de puntos recibidos, número máximo de puntos posibles, número de votos en primer lugar.

  1. Data (HallofFame): se compone de los resultados de votación para todos los candidatos nominados para el Salón de la Fama del Béisbol. Tiene 4156 observaciones con 9 variables como por ejemplo: ID del jugador, año de votación, método por el cual el jugador fue votado, total de boletas anuales, total de votos recibidos. Detalle: La tabla se vincula con la de Data(Master) OTRAS TABLAS
  2. Data(Allstarfull): 5148 observaciones con 8 variables
  3. Data (Managers): 5,148 observaciones con 8 variables
  4. Data (FieldingOF): 12,028 observaciones con 6 variables
  5. Data (Managershalf): 93 observaciones con 10 variables
  6. Data (Salaries): 26,428 observaciones con 5 variables
  7. Data (Appearances): 102,761 observaciones con 21 variables
  8. Data (Schools): 1,207 observaciones con 5 variables
  9. Data (Collegeplaying): 17,350 observaciones con 3 variables

Cuando instale el paquete, igual no verá nada pero la informacón ya esta disponible. Como una introducción, las primeras filas de la tabla maestra (Data(master)) se pueden ver usando la siguiente función.

library(Lahman)
head(Master)
##    playerID birthYear birthMonth birthDay birthCountry birthState
## 1 aardsda01      1981         12       27          USA         CO
## 2 aaronha01      1934          2        5          USA         AL
## 3 aaronto01      1939          8        5          USA         AL
## 4  aasedo01      1954          9        8          USA         CA
## 5  abadan01      1972          8       25          USA         FL
## 6  abadfe01      1985         12       17         D.R.  La Romana
##    birthCity deathYear deathMonth deathDay deathCountry deathState
## 1     Denver        NA         NA       NA         <NA>       <NA>
## 2     Mobile        NA         NA       NA         <NA>       <NA>
## 3     Mobile      1984          8       16          USA         GA
## 4     Orange        NA         NA       NA         <NA>       <NA>
## 5 Palm Beach        NA         NA       NA         <NA>       <NA>
## 6  La Romana        NA         NA       NA         <NA>       <NA>
##   deathCity nameFirst nameLast        nameGiven weight height bats throws
## 1      <NA>     David  Aardsma      David Allan    215     75    R      R
## 2      <NA>      Hank    Aaron      Henry Louis    180     72    R      R
## 3   Atlanta    Tommie    Aaron       Tommie Lee    190     75    R      R
## 4      <NA>       Don     Aase   Donald William    190     75    R      R
## 5      <NA>      Andy     Abad    Fausto Andres    184     73    L      L
## 6      <NA>  Fernando     Abad Fernando Antonio    220     73    L      L
##        debut  finalGame  retroID   bbrefID  deathDate  birthDate
## 1 2004-04-06 2015-08-23 aardd001 aardsda01       <NA> 1981-12-27
## 2 1954-04-13 1976-10-03 aaroh101 aaronha01       <NA> 1934-02-05
## 3 1962-04-10 1971-09-26 aarot101 aaronto01 1984-08-16 1939-08-05
## 4 1977-07-26 1990-10-03 aased001  aasedo01       <NA> 1954-09-08
## 5 2001-09-10 2006-04-13 abada001  abadan01       <NA> 1972-08-25
## 6 2010-07-28 2016-09-25 abadf001  abadfe01       <NA> 1985-12-17

A continuación haremos algunos ejemplos para mostrar datos que contiene este paquete.

  1. Usando los datos de “AwardsPlayers”" se muestra una tabla de los premios que existe en la MLB y cuantas veces se ha dado el premio, de igual forma estos datos se muestran en una grafica de puntos.
data(AwardsPlayers)
# Que tipo de premios hay y cuantas veces se han dado
with(AwardsPlayers, table(awardID))
## awardID
##                            ALCS MVP                   All-Star Game MVP 
##                                  36                                  55 
##                     Babe Ruth Award          Baseball Magazine All-Star 
##                                  64                                1520 
##                 Branch Rickey Award         Comeback Player of the Year 
##                                  23                                  24 
##                      Cy Young Award                          Gold Glove 
##                                 112                                1073 
##                    Hank Aaron Award                         Hutch Award 
##                                  36                                  48 
##           Lou Gehrig Memorial Award                Most Valuable Player 
##                                  57                                 194 
##                            NLCS MVP                Outstanding DH Award 
##                                  41                                   1 
##               Pitching Triple Crown          Reliever of the Year Award 
##                                  38                                   2 
##              Roberto Clemente Award            Rolaids Relief Man Award 
##                                  47                                  74 
##                  Rookie of the Year                      Silver Slugger 
##                                 140                                 667 
##                        Triple Crown                        TSN All-Star 
##                                  17                                1371 
##             TSN Fireman of the Year                       TSN Guide MVP 
##                                  88                                  33 
## TSN Major League Player of the Year             TSN Pitcher of the Year 
##                                  82                                 137 
##              TSN Player of the Year            TSN Reliever of the Year 
##                                  92                                  22 
##                    World Series MVP 
##                                  64
awardtab <- with(AwardsPlayers, table(awardID))

# Dibuje la tabla awardtab como un diagrama de puntos
library("lattice")
dotplot(awardtab)

A continuacion hago una consulta y muestro a los jugadores que ganaron el premio Cy Young en 1981 y resalto al jugador mexicano Fernando Valenzuela.

# Muestro al jugador Fernando Valenzuela uno de los dos ganadores de Cy Young
cya <- subset(AwardsPlayers, awardID == "Cy Young Award")
# Quien gano en 1981?
cya[cya$yearID == 1981L, ]
##       playerID        awardID yearID lgID  tie notes
## 3441 fingero01 Cy Young Award   1981   AL <NA>  <NA>
## 3442 valenfe01 Cy Young Award   1981   NL <NA>  <NA>
playerscya <- cya[cya$yearID == 1981L, ]
playerInfo(playerscya[2,"playerID"])
##        playerID nameFirst   nameLast
## 17625 valenfe01  Fernando Valenzuela
  1. Usando la tabla “Salaries” se muestra un ejemplo de los jugadores mejores pagados desde 1985 al 2016
library(Lahman)
library(plyr)

require(plyr)

# Salario por liga, equipo y año
teamSalaries <- ddply(Salaries, .(lgID, teamID, yearID), summarise,
                       Salary = sum(as.numeric(salary)))

# Salrio ordenados en forma decreciente
teamSalaries <- ddply(teamSalaries, .(yearID, lgID), arrange, desc(Salary))


# Mejores salarios por año desde 1985
maxSal <- ddply(Salaries, .(yearID), subset, salary == max(salary))
names <- apply(t(sapply(maxSal$playerID, playerInfo))[,2:3], 2, paste)
maxSal <- cbind(maxSal, names)
maxSal
##    yearID teamID lgID  playerID   salary nameFirst   nameLast
## 1    1985    PHI   NL schmimi01  2130300      Mike    Schmidt
## 2    1986    NYN   NL fostege01  2800000    George     Foster
## 3    1987    PHI   NL schmimi01  2127333      Mike    Schmidt
## 4    1988    SLN   NL smithoz01  2340000     Ozzie      Smith
## 5    1989    LAN   NL hershor01  2766667      Orel  Hershiser
## 6    1990    ML4   AL yountro01  3200000     Robin      Yount
## 7    1991    LAN   NL strawda01  3800000    Darryl Strawberry
## 8    1992    NYN   NL bonilbo01  6100000     Bobby    Bonilla
## 9    1993    NYN   NL bonilbo01  6200000     Bobby    Bonilla
## 10   1994    NYN   NL bonilbo01  6300000     Bobby    Bonilla
## 11   1995    DET   AL fieldce01  9237500     Cecil    Fielder
## 12   1996    DET   AL fieldce01  9237500     Cecil    Fielder
## 13   1997    CHA   AL belleal01 10000000    Albert      Belle
## 14   1998    FLO   NL sheffga01 14936667      Gary  Sheffield
## 15   1999    BAL   AL belleal01 11949794    Albert      Belle
## 16   2000    LAN   NL brownke01 15714286     Kevin      Brown
## 17   2001    TEX   AL rodrial01 22000000      Alex  Rodriguez
## 18   2002    TEX   AL rodrial01 22000000      Alex  Rodriguez
## 19   2003    TEX   AL rodrial01 22000000      Alex  Rodriguez
## 20   2004    BOS   AL ramirma02 22500000     Manny    Ramirez
## 21   2005    NYA   AL rodrial01 26000000      Alex  Rodriguez
## 22   2006    NYA   AL rodrial01 21680727      Alex  Rodriguez
## 23   2007    NYA   AL giambja01 23428571     Jason     Giambi
## 24   2008    NYA   AL rodrial01 28000000      Alex  Rodriguez
## 25   2009    NYA   AL rodrial01 33000000      Alex  Rodriguez
## 26   2010    NYA   AL rodrial01 33000000      Alex  Rodriguez
## 27   2011    NYA   AL rodrial01 32000000      Alex  Rodriguez
## 28   2012    NYA   AL rodrial01 30000000      Alex  Rodriguez
## 29   2013    NYA   AL rodrial01 29000000      Alex  Rodriguez
## 30   2014    LAN   NL greinza01 26000000      Zack    Greinke
## 31   2015    LAN   NL kershcl01 32571000   Clayton    Kershaw
## 32   2016    LAD   NL kershcl01 33000000   Clayton    Kershaw
#Grafica Salario vs Año

plot(salary/100000 ~ yearID, data=maxSal, type='b', ylab='Salario Dolares (100,000$)', xlab = 'Año')