Lectura de la base de datos

# Lectura de la base de datos de los jugadores de la NBA
nba <- read.csv2("nba_ht_wt.csv")
# Conversión de libras a kilos.
nba$peso2 <- nba$peso * 0.453592
# Conversión de pulgadas a centímetros.
nba$estatura2 <- nba$estatura * 2.54
# Cálculo del índice de masa corporal
nba$imc <- with(nba, peso2  / (estatura2 / 100) ^ 2)
# Etiquetar los niveles del factor de "posición".
nba$posicion2 <- factor(nba$posicion, labels = c("Pívot", "Alero", "Base"))

Diagrama de dispersión de la estatura con respecto a la posición

library(ggplot2)
g1 <- ggplot(nba, aes(posicion, estatura2))
g1 + geom_point()

library(ggplot2)
g1 <- ggplot(nba, aes(posicion2, estatura2))
g1 + geom_jitter()

library(ggplot2)
g1 <- ggplot(nba, aes(posicion, estatura2))
g1 + geom_jitter(width = 0.1, height = 0)

library(ggplot2)
g1 <- ggplot(nba, aes(posicion, estatura2))
g1 + geom_boxplot()

library(ggplot2)
g1 <- ggplot(nba, aes(posicion2, estatura2))
g1 + geom_boxplot() + 
  geom_jitter(width = 0.1, height = 0) +
  stat_summary(fun.y = "mean", colour = "red", size = 2, geom = "point") +
  labs( title = "Distribución de la estatura por posición en jugadores de la NBA",
         y = "Estatura (cm)",
         x = "Posición en el equipo")

Histograma del índice de masa corporal

library(ggplot2)
g1 <- ggplot(nba, aes(imc))
g1 + geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

library(ggplot2)
g1 <- ggplot(nba, aes(imc))
g1 + geom_histogram(binwidth = 0.1)

library(ggplot2)
g1 <- ggplot(nba, aes(imc))
g1 + geom_histogram(binwidth = 2.5)

library(ggplot2)
g1 <- ggplot(nba, aes(imc))
g1 + geom_histogram(binwidth = 0.5)

library(ggplot2)
g1 <- ggplot(nba, aes(imc))
g1 + geom_histogram(binwidth = 0.5, aes(y = ..density..)) + 
     geom_density( col = "red", size = 1.5)

library(ggplot2)
g1 <- ggplot(nba, aes(imc))
g1 + geom_histogram(binwidth = 0.5, aes(y = ..density..)) + 
     geom_density( col = "red", size = 1.5) +
     labs( title = "Distribución del IMC en jugadores de la NBA",
           y = "Densidad",
           x = "Índice de Masa Corporal (IMC kg/cm2)")

Distribución del índice de masa corporal con la posición

library(ggplot2)
g1 <- ggplot(nba, aes(imc, col = posicion2, fill = posicion2))
g1 + geom_histogram(aes(y = ..density..), position = "identity", alpha = 0.1,
                    binwidth = 0.5) +
     geom_density(aes(col = posicion2), size = 1.5, alpha = 0.2) +
     labs( title = "Distribución del IMC en jugadores de la NBA",
           subtitle = "Por posición",
           y = "Densidad",
           x = "Índice de Masa Corporal (IMC kg/cm2)")

library(ggplot2)
g1 <- ggplot(nba, aes(posicion2, imc, col = posicion2, fill = posicion2))
g1 + geom_violin(alpha = .2) +
     labs( title = "Distribución del IMC en jugadores de la NBA",
           x = "Posición",
           y = "Índice de Masa Corporal (IMC kg/cm2)")

Resumen estadístico

summary(nba)
##           jugador    posicion    estatura          peso      
##  Aaron Brooks :  1   C: 92    Min.   :69.00   Min.   :157.0  
##  Aaron Gray   :  1   F:211    1st Qu.:76.00   1st Qu.:200.0  
##  Alan Anderson:  1   G:202    Median :80.00   Median :220.0  
##  Alec Burks   :  1            Mean   :79.07   Mean   :220.7  
##  Alexey Shved :  1            3rd Qu.:82.00   3rd Qu.:240.0  
##  Alex Len     :  1            Max.   :87.00   Max.   :290.0  
##  (Other)      :499                                           
##       edad           peso2          estatura2          imc       
##  Min.   :15.00   Min.   : 71.21   Min.   :175.3   Min.   :20.11  
##  1st Qu.:23.00   1st Qu.: 90.72   1st Qu.:193.0   1st Qu.:23.69  
##  Median :25.00   Median : 99.79   Median :203.2   Median :24.78  
##  Mean   :26.19   Mean   :100.10   Mean   :200.8   Mean   :24.74  
##  3rd Qu.:29.00   3rd Qu.:108.86   3rd Qu.:208.3   3rd Qu.:25.82  
##  Max.   :40.00   Max.   :131.54   Max.   :221.0   Max.   :30.97  
##                                                                  
##  posicion2  
##  Pívot: 92  
##  Alero:211  
##  Base :202  
##             
##             
##             
## 

Resúmenes estadísticos por grupo

nbaPivot <- subset(nba, posicion2 == "Pívot")
summary(nbaPivot)
##              jugador   posicion    estatura          peso      
##  Aaron Gray      : 1   C:92     Min.   :80.00   Min.   :210.0  
##  Alex Len        : 1   F: 0     1st Qu.:82.00   1st Qu.:240.0  
##  Al Jefferson    : 1   G: 0     Median :83.00   Median :250.0  
##  Anderson Varejao: 1            Mean   :83.18   Mean   :251.3  
##  Andray Blatche  : 1            3rd Qu.:84.00   3rd Qu.:263.0  
##  Andrea Bargnani : 1            Max.   :87.00   Max.   :290.0  
##  (Other)         :86                                           
##       edad           peso2          estatura2          imc       
##  Min.   :19.00   Min.   : 95.25   Min.   :203.2   Min.   :21.43  
##  1st Qu.:23.75   1st Qu.:108.86   1st Qu.:208.3   1st Qu.:24.40  
##  Median :26.00   Median :113.40   Median :210.8   Median :25.46  
##  Mean   :26.38   Mean   :114.00   Mean   :211.3   Mean   :25.54  
##  3rd Qu.:28.00   3rd Qu.:119.29   3rd Qu.:213.4   3rd Qu.:26.45  
##  Max.   :39.00   Max.   :131.54   Max.   :221.0   Max.   :29.60  
##                                                                  
##  posicion2 
##  Pívot:92  
##  Alero: 0  
##  Base : 0  
##            
##            
##            
## 
nbaPivot <- droplevels(subset(nba, posicion2 == "Pívot"))
summary(nbaPivot)
##              jugador   posicion    estatura          peso      
##  Aaron Gray      : 1   C:92     Min.   :80.00   Min.   :210.0  
##  Alex Len        : 1            1st Qu.:82.00   1st Qu.:240.0  
##  Al Jefferson    : 1            Median :83.00   Median :250.0  
##  Anderson Varejao: 1            Mean   :83.18   Mean   :251.3  
##  Andray Blatche  : 1            3rd Qu.:84.00   3rd Qu.:263.0  
##  Andrea Bargnani : 1            Max.   :87.00   Max.   :290.0  
##  (Other)         :86                                           
##       edad           peso2          estatura2          imc       
##  Min.   :19.00   Min.   : 95.25   Min.   :203.2   Min.   :21.43  
##  1st Qu.:23.75   1st Qu.:108.86   1st Qu.:208.3   1st Qu.:24.40  
##  Median :26.00   Median :113.40   Median :210.8   Median :25.46  
##  Mean   :26.38   Mean   :114.00   Mean   :211.3   Mean   :25.54  
##  3rd Qu.:28.00   3rd Qu.:119.29   3rd Qu.:213.4   3rd Qu.:26.45  
##  Max.   :39.00   Max.   :131.54   Max.   :221.0   Max.   :29.60  
##                                                                  
##  posicion2 
##  Pívot:92  
##            
##            
##            
##            
##            
## 

Relación de la edad con el IMC en jugadores de posición “Alero”

nbaAlero <- droplevels(subset(nba, posicion2 == "Alero"))
library(ggplot2)
g1 <- ggplot(nbaAlero, aes(edad, imc))
g1 + geom_point() +
     geom_smooth() +
     labs(title = "Distribución del IMC de acuerdo a la edad",
          subtitle = "De los jugadores en la posición 'Alero'",
          x = "Edad (años cumplidos)",
          y = "Índice de Masa Corporal (IMC kg/cm2)")
## `geom_smooth()` using method = 'loess'