packages

Si copian y utilizan el siguiente trozo de código, se instalarán y cargarán los paquetes aquí utilizados (asegurarse que están conectados a la red). Al inicio les pedirá especificar el “mirror” o servidor que R utilizará para bajar los paquetes.

if(!require(tidyverse)){install.packages("tidyverse")}
if(!require(googlesheets4)){install.packages("googlesheets4")}
if(!require(googledrive)){install.packages("googledrive")}
if(!require(vioplot)){install.packages("vioplot")}
##
library(vioplot)
library(tidyverse)
library(googlesheets4)
library(googledrive)

Reading Data

ss <- "https://docs.google.com/spreadsheets/d/180rJU7y7aXlAqwSLtKdrlkLgFjwCwI76l6Uf7kii31U/edit?usp=sharing"
hoja = 1
rango = "C3:I48"
datos <- read_sheet(ss,
                sheet=hoja,
                range= rango,
                col_names = TRUE,
                col_types = "c")

Tipos de variable: Leyendo las columnas

str(datos)
tibble [45 × 7] (S3: tbl_df/tbl/data.frame)
 $ altura : chr [1:45] "165" "173" "170" "177" ...
 $ lbs    : chr [1:45] "175" "140" "130" "175" ...
 $ calzado: chr [1:45] "39" "39" "43" "40" ...
 $ mano   : chr [1:45] "18" "16" "17.5" "19.2" ...
 $ brazo  : chr [1:45] "25" "24" "28" "29.1" ...
 $ cuello : chr [1:45] "36" "33" "32" "40.2" ...
 $ sex    : chr [1:45] "Hombre" "Mujer" "Hombre" "Hombre" ...
datos[,c(1:6)] <- datos[,c(1:6)] %>%
  sapply(as.numeric)

datos <-  datos %>%
  mutate_if(is.character, as.factor)

str(datos)
tibble [45 × 7] (S3: tbl_df/tbl/data.frame)
 $ altura : num [1:45] 165 173 170 177 167 157 152 172 165 165 ...
 $ lbs    : num [1:45] 175 140 130 175 146 110 125 142 220 140 ...
 $ calzado: num [1:45] 39 39 43 40 40 36 37 39.5 41.5 39 ...
 $ mano   : num [1:45] 18 16 17.5 19.2 17.5 17 16 18 19 17 ...
 $ brazo  : num [1:45] 25 24 28 29.1 26 23 22 26 26 25 ...
 $ cuello : num [1:45] 36 33 32 40.2 35 35 35 39 44 40 ...
 $ sex    : Factor w/ 2 levels "Hombre","Mujer": 1 2 1 1 1 2 2 1 1 1 ...

Exploración gráfica

Aquí utilizamos el paquete básico (“base”) de R. Más adelante veremos más argumentos y otros comandos de otros paquetes (e.g., “ggplot2”) para modificar etiquetas, títulos, etc.

prom.altura <- mean(datos$altura) #promedio
mediana.altura <- median(datos$altura) #mediana
desv.estandar <- sd(datos$altura)
prom.altura
[1] 168.5889
mediana.altura
[1] 169
desv.estandar
[1] 7.710153
par(mfrow=c(1,2)) #parámetros para mostrar figuras en dos columnas
plot(datos$altura, pch= 19) #el color según el sexo del individuo
abline(h= prom.altura, lty= 4, lwd= 2, col= "red3") #el promedio en rojo
abline(h= prom.altura + desv.estandar, lty= 4, lwd=1) #promedio + desviación típica 
abline(h= prom.altura - desv.estandar, lty= 4, lwd=1) #promedio - desviación típica 
#Histograma
hist(datos$altura, breaks = 10, labels = TRUE, 
     ylim= c(0,14)) #distribución de frecuencias
abline(v= prom.altura, lty= 4, lwd=2, col= "red3") #el promedio en rojo
abline(v= mediana.altura, lty= 2, lwd=2) #le mediana en negro
abline(v= prom.altura + desv.estandar, lty= 4, lwd=1) #promedio + desviación típica 
abline(v= prom.altura - desv.estandar, lty= 4, lwd=1) #promedio - desviación típica 

En el primer gráfico mostramos gráficamente el promedio en línea de color rojo y en lineas discontinuas color negro, la desviación estándard (d.e.). La d.e. es “el promedio de las diferencias entre cada uno de los valores de altura y el promedio de altura”

hombres <- datos %>% filter(sex== "Hombre") #filtrando por sexo del individuo
mujeres <- datos %>% filter(sex== "Mujer")
hist(hombres$altura, breaks = 20, col= "darkgray", 
     xlim =  c(150,185), xlab = "Histograma de altura", 
     main = "Histograma de hombres y mujeres" ) #distribución de frecuencias de hombres
abline(v= mean(hombres$altura), lty= 4, lwd=2, col= "red3") #promedio en rojo
abline(v= median(hombres$altura), lty= 2, lwd=2)
hist(mujeres$altura, breaks = 20, col= "red3", add= TRUE,
     density=25, angle=60, xlim =  c(150,185)) #distribución de frecuencias de mujeres
abline(v= mean(mujeres$altura), lty= 4, lwd=2, col= "red3") #promedio en rojo
abline(v= median(mujeres$altura), lty= 2, lwd=2)

par(mfrow=c(1,2))

plot(datos$altura, pch= 19, col= datos$sex) #el color según el sexo del individuo
abline(h= mean(mujeres$altura), lty= 4, lwd=2, col= "red3") #promedio en rojo
abline(h= median(mujeres$altura), lty= 2, lwd=2)
abline(h= mean(hombres$altura), lty= 4, lwd=2, col= "red3") #promedio en rojo
abline(h= median(hombres$altura), lty= 2, lwd=2)

boxplot(datos$altura ~ datos$sex) #"Gráfico de cajas"
points(datos$altura ~ datos$sex, pch=19, col= datos$sex)
abline(h= mean(mujeres$altura), lty= 4, lwd=2, col= "red3") #promedio en rojo
abline(h= median(mujeres$altura), lty= 2, lwd=2)
abline(h= mean(hombres$altura), lty= 4, lwd=2, col= "red3") #promedio en rojo
abline(h= median(hombres$altura), lty= 2, lwd=2)

vioplot(datos$altura ~ datos$sex,
        col= c("darkgray", "red3")) #"Gráfico de violin"

LS0tDQp0aXRsZTogIkRlc2NyaXB0aXZlIHN0YXRzIg0KYXV0aG9yOiAiRmVkZXJpY28gSi4gVmlsbGF0b3JvIg0Kb3V0cHV0OiANCiAgaHRtbF9ub3RlYm9vazogDQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgZmlnX2hlaWdodDogNg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0KbGlicmFyeShmbGV4ZGFzaGJvYXJkKQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KICBlY2hvID0gVFJVRSwNCgltZXNzYWdlID0gRkFMU0UsDQogIHdhcm5pbmcgPSBGQUxTRSwNCglpbmNsdWRlID0gVFJVRQ0KKQ0KYGBgICANCg0KIyMjIyBwYWNrYWdlcw0KU2kgY29waWFuIHkgdXRpbGl6YW4gZWwgc2lndWllbnRlIHRyb3pvIGRlIGPDs2RpZ28sIHNlIGluc3RhbGFyw6FuIHkgY2FyZ2Fyw6FuIGxvcyBwYXF1ZXRlcyBhcXXDrSB1dGlsaXphZG9zIChhc2VndXJhcnNlIHF1ZSBlc3TDoW4gY29uZWN0YWRvcyBhIGxhIHJlZCkuIEFsIGluaWNpbyBsZXMgcGVkaXLDoSBlc3BlY2lmaWNhciBlbCAibWlycm9yIiBvIHNlcnZpZG9yIHF1ZSBSIHV0aWxpemFyw6EgcGFyYSBiYWphciBsb3MgcGFxdWV0ZXMuDQpgYGB7ciBwYWNrYWdlcywgbWVzc2FnZT1GQUxTRSwgaW5jbHVkZT1UUlVFfQ0KaWYoIXJlcXVpcmUodGlkeXZlcnNlKSl7aW5zdGFsbC5wYWNrYWdlcygidGlkeXZlcnNlIil9DQppZighcmVxdWlyZShnb29nbGVzaGVldHM0KSl7aW5zdGFsbC5wYWNrYWdlcygiZ29vZ2xlc2hlZXRzNCIpfQ0KaWYoIXJlcXVpcmUoZ29vZ2xlZHJpdmUpKXtpbnN0YWxsLnBhY2thZ2VzKCJnb29nbGVkcml2ZSIpfQ0KaWYoIXJlcXVpcmUodmlvcGxvdCkpe2luc3RhbGwucGFja2FnZXMoInZpb3Bsb3QiKX0NCiMjDQpsaWJyYXJ5KHZpb3Bsb3QpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoZ29vZ2xlc2hlZXRzNCkNCmxpYnJhcnkoZ29vZ2xlZHJpdmUpDQpgYGAgIA0KDQojIyMgUmVhZGluZyBEYXRhDQoNCmBgYHtyIGluY2x1ZGU9IEZBTFNFfQ0KDQpvcHRpb25zKGdhcmdsZV9vYXV0aF9lbWFpbCA9ICJ2aWxsYXRvcm9wYXpmakBkYXRhYW5hbHlzaXNsYWIuY29tIikNCmBgYCAgDQoNCmBgYHtyIGVjaG89VFJVRX0NCnNzIDwtICJodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9zcHJlYWRzaGVldHMvZC8xODBySlU3eTdhWGxBcXdTTHRLZHJsa0xnRmp3Q3dJNzZsNlVmN2tpaTMxVS9lZGl0P3VzcD1zaGFyaW5nIg0KaG9qYSA9IDENCnJhbmdvID0gIkMzOkk0OCINCmRhdG9zIDwtIHJlYWRfc2hlZXQoc3MsDQogICAgICAgICAgICAgICAgc2hlZXQ9aG9qYSwNCiAgICAgICAgICAgICAgICByYW5nZT0gcmFuZ28sDQogICAgICAgICAgICAgICAgY29sX25hbWVzID0gVFJVRSwNCiAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSAiYyIpDQoNCmBgYCAgDQoNCiMjIyBUaXBvcyBkZSB2YXJpYWJsZTogTGV5ZW5kbyBsYXMgY29sdW1uYXMNCg0KYGBge3J9DQpzdHIoZGF0b3MpDQoNCmRhdG9zWyxjKDE6NildIDwtIGRhdG9zWyxjKDE6NildICU+JQ0KICBzYXBwbHkoYXMubnVtZXJpYykNCg0KZGF0b3MgPC0gIGRhdG9zICU+JQ0KICBtdXRhdGVfaWYoaXMuY2hhcmFjdGVyLCBhcy5mYWN0b3IpDQoNCnN0cihkYXRvcykNCg0KYGBgICANCg0KIyMjIEV4cGxvcmFjacOzbiBncsOhZmljYQ0KQXF1w60gdXRpbGl6YW1vcyBlbCBwYXF1ZXRlIGLDoXNpY28gKCJiYXNlIikgZGUgUi4gTcOhcyBhZGVsYW50ZSB2ZXJlbW9zIG3DoXMgYXJndW1lbnRvcyB5IG90cm9zIGNvbWFuZG9zIGRlIG90cm9zIHBhcXVldGVzIChlLmcuLCAiZ2dwbG90MiIpIHBhcmEgbW9kaWZpY2FyIGV0aXF1ZXRhcywgdMOtdHVsb3MsIGV0Yy4NCg0KYGBge3J9DQpwcm9tLmFsdHVyYSA8LSBtZWFuKGRhdG9zJGFsdHVyYSkgI3Byb21lZGlvDQptZWRpYW5hLmFsdHVyYSA8LSBtZWRpYW4oZGF0b3MkYWx0dXJhKSAjbWVkaWFuYQ0KZGVzdi5lc3RhbmRhciA8LSBzZChkYXRvcyRhbHR1cmEpDQpgYGAgIA0KDQpgYGB7cn0NCnByb20uYWx0dXJhDQptZWRpYW5hLmFsdHVyYQ0KZGVzdi5lc3RhbmRhcg0KYGBgICANCg0KYGBge3J9DQpwYXIobWZyb3c9YygxLDIpKSAjcGFyw6FtZXRyb3MgcGFyYSBtb3N0cmFyIGZpZ3VyYXMgZW4gZG9zIGNvbHVtbmFzDQpwbG90KGRhdG9zJGFsdHVyYSwgcGNoPSAxOSkgI2VsIGNvbG9yIHNlZ8O6biBlbCBzZXhvIGRlbCBpbmRpdmlkdW8NCmFibGluZShoPSBwcm9tLmFsdHVyYSwgbHR5PSA0LCBsd2Q9IDIsIGNvbD0gInJlZDMiKSAjZWwgcHJvbWVkaW8gZW4gcm9qbw0KYWJsaW5lKGg9IHByb20uYWx0dXJhICsgZGVzdi5lc3RhbmRhciwgbHR5PSA0LCBsd2Q9MSkgI3Byb21lZGlvICsgZGVzdmlhY2nDs24gdMOtcGljYSANCmFibGluZShoPSBwcm9tLmFsdHVyYSAtIGRlc3YuZXN0YW5kYXIsIGx0eT0gNCwgbHdkPTEpICNwcm9tZWRpbyAtIGRlc3ZpYWNpw7NuIHTDrXBpY2EgDQojSGlzdG9ncmFtYQ0KaGlzdChkYXRvcyRhbHR1cmEsIGJyZWFrcyA9IDEwLCBsYWJlbHMgPSBUUlVFLCANCiAgICAgeWxpbT0gYygwLDE0KSkgI2Rpc3RyaWJ1Y2nDs24gZGUgZnJlY3VlbmNpYXMNCmFibGluZSh2PSBwcm9tLmFsdHVyYSwgbHR5PSA0LCBsd2Q9MiwgY29sPSAicmVkMyIpICNlbCBwcm9tZWRpbyBlbiByb2pvDQphYmxpbmUodj0gbWVkaWFuYS5hbHR1cmEsIGx0eT0gMiwgbHdkPTIpICNsZSBtZWRpYW5hIGVuIG5lZ3JvDQphYmxpbmUodj0gcHJvbS5hbHR1cmEgKyBkZXN2LmVzdGFuZGFyLCBsdHk9IDQsIGx3ZD0xKSAjcHJvbWVkaW8gKyBkZXN2aWFjacOzbiB0w61waWNhIA0KYWJsaW5lKHY9IHByb20uYWx0dXJhIC0gZGVzdi5lc3RhbmRhciwgbHR5PSA0LCBsd2Q9MSkgI3Byb21lZGlvIC0gZGVzdmlhY2nDs24gdMOtcGljYSANCmBgYCAgDQpFbiBlbCBwcmltZXIgZ3LDoWZpY28gbW9zdHJhbW9zIGdyw6FmaWNhbWVudGUgZWwgcHJvbWVkaW8gZW4gbMOtbmVhIGRlIGNvbG9yIHJvam8geSBlbiBsaW5lYXMgZGlzY29udGludWFzIGNvbG9yIG5lZ3JvLCBsYSBkZXN2aWFjacOzbiBlc3TDoW5kYXJkIChkLmUuKS4gIExhIGQuZS4gZXMgImVsIHByb21lZGlvIGRlIGxhcyBkaWZlcmVuY2lhcyBlbnRyZSBjYWRhIHVubyBkZSBsb3MgdmFsb3JlcyBkZSBhbHR1cmEgeSBlbCBwcm9tZWRpbyBkZSBhbHR1cmEiDQoNCmBgYHtyfQ0KaG9tYnJlcyA8LSBkYXRvcyAlPiUgZmlsdGVyKHNleD09ICJIb21icmUiKSAjZmlsdHJhbmRvIHBvciBzZXhvIGRlbCBpbmRpdmlkdW8NCm11amVyZXMgPC0gZGF0b3MgJT4lIGZpbHRlcihzZXg9PSAiTXVqZXIiKQ0KYGBgICANCg0KDQpgYGB7cn0NCmhpc3QoaG9tYnJlcyRhbHR1cmEsIGJyZWFrcyA9IDIwLCBjb2w9ICJkYXJrZ3JheSIsIA0KICAgICB4bGltID0gIGMoMTUwLDE4NSksIHhsYWIgPSAiSGlzdG9ncmFtYSBkZSBhbHR1cmEiLCANCiAgICAgbWFpbiA9ICJIaXN0b2dyYW1hIGRlIGhvbWJyZXMgeSBtdWplcmVzIiApICNkaXN0cmlidWNpw7NuIGRlIGZyZWN1ZW5jaWFzIGRlIGhvbWJyZXMNCmFibGluZSh2PSBtZWFuKGhvbWJyZXMkYWx0dXJhKSwgbHR5PSA0LCBsd2Q9MiwgY29sPSAicmVkMyIpICNwcm9tZWRpbyBlbiByb2pvDQphYmxpbmUodj0gbWVkaWFuKGhvbWJyZXMkYWx0dXJhKSwgbHR5PSAyLCBsd2Q9MikNCmhpc3QobXVqZXJlcyRhbHR1cmEsIGJyZWFrcyA9IDIwLCBjb2w9ICJyZWQzIiwgYWRkPSBUUlVFLA0KICAgICBkZW5zaXR5PTI1LCBhbmdsZT02MCwgeGxpbSA9ICBjKDE1MCwxODUpKSAjZGlzdHJpYnVjacOzbiBkZSBmcmVjdWVuY2lhcyBkZSBtdWplcmVzDQphYmxpbmUodj0gbWVhbihtdWplcmVzJGFsdHVyYSksIGx0eT0gNCwgbHdkPTIsIGNvbD0gInJlZDMiKSAjcHJvbWVkaW8gZW4gcm9qbw0KYWJsaW5lKHY9IG1lZGlhbihtdWplcmVzJGFsdHVyYSksIGx0eT0gMiwgbHdkPTIpDQoNCnBhcihtZnJvdz1jKDEsMikpDQpwbG90KGRhdG9zJGFsdHVyYSwgcGNoPSAxOSwgY29sPSBkYXRvcyRzZXgpICNlbCBjb2xvciBzZWfDum4gZWwgc2V4byBkZWwgaW5kaXZpZHVvDQphYmxpbmUoaD0gbWVhbihtdWplcmVzJGFsdHVyYSksIGx0eT0gNCwgbHdkPTIsIGNvbD0gInJlZDMiKSAjcHJvbWVkaW8gZW4gcm9qbw0KYWJsaW5lKGg9IG1lZGlhbihtdWplcmVzJGFsdHVyYSksIGx0eT0gMiwgbHdkPTIpDQphYmxpbmUoaD0gbWVhbihob21icmVzJGFsdHVyYSksIGx0eT0gNCwgbHdkPTIsIGNvbD0gInJlZDMiKSAjcHJvbWVkaW8gZW4gcm9qbw0KYWJsaW5lKGg9IG1lZGlhbihob21icmVzJGFsdHVyYSksIGx0eT0gMiwgbHdkPTIpDQoNCmJveHBsb3QoZGF0b3MkYWx0dXJhIH4gZGF0b3Mkc2V4KSAjIkdyw6FmaWNvIGRlIGNhamFzIg0KcG9pbnRzKGRhdG9zJGFsdHVyYSB+IGRhdG9zJHNleCwgcGNoPTE5LCBjb2w9IGRhdG9zJHNleCkNCmFibGluZShoPSBtZWFuKG11amVyZXMkYWx0dXJhKSwgbHR5PSA0LCBsd2Q9MiwgY29sPSAicmVkMyIpICNwcm9tZWRpbyBlbiByb2pvDQphYmxpbmUoaD0gbWVkaWFuKG11amVyZXMkYWx0dXJhKSwgbHR5PSAyLCBsd2Q9MikNCmFibGluZShoPSBtZWFuKGhvbWJyZXMkYWx0dXJhKSwgbHR5PSA0LCBsd2Q9MiwgY29sPSAicmVkMyIpICNwcm9tZWRpbyBlbiByb2pvDQphYmxpbmUoaD0gbWVkaWFuKGhvbWJyZXMkYWx0dXJhKSwgbHR5PSAyLCBsd2Q9MikNCmBgYCAgDQoNCg0KYGBge3J9DQp2aW9wbG90KGRhdG9zJGFsdHVyYSB+IGRhdG9zJHNleCwNCiAgICAgICAgY29sPSBjKCJkYXJrZ3JheSIsICJyZWQzIikpICMiR3LDoWZpY28gZGUgdmlvbGluIg0KDQpgYGAgIA0K