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)
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")
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 ...
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"