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'
