1. Cargar librerias o paquetes

install.packages(“rometes”) remotes::install_github(“osoramirez/resumeRdesc”)

library(readr)       # Por si acaso cargamos datos ...
library(ggplot2)     # Para visualizar
library(resumeRdesc) # Para estadísticos descriptivos
  1. Cargar o construir los datos
set.seed(2020)
n <- 100   # Total de observaciones
edades <- sample(19:81, n, replace = TRUE)
pesos <- sample(45:98, n, replace = TRUE)
estaturas <- sample(154:199, n, replace = TRUE) /100

personas <- data.frame(edades, pesos, estaturas)
names(personas) <- c("edad", "peso", "estatura")

personas
##     edad peso estatura
## 1     46   85     1.63
## 2     62   60     1.79
## 3     41   50     1.77
## 4     40   68     1.74
## 5     42   70     1.88
## 6     19   54     1.97
## 7     35   70     1.78
## 8     54   77     1.96
## 9     60   72     1.75
## 10    24   45     1.86
## 11    67   61     1.68
## 12    63   84     1.84
## 13    74   59     1.65
## 14    26   88     1.84
## 15    60   94     1.54
## 16    68   57     1.80
## 17    34   49     1.57
## 18    72   68     1.56
## 19    47   92     1.73
## 20    52   64     1.77
## 21    66   96     1.73
## 22    21   64     1.97
## 23    20   58     1.82
## 24    47   57     1.54
## 25    74   72     1.92
## 26    58   61     1.97
## 27    22   74     1.97
## 28    68   89     1.75
## 29    32   83     1.65
## 30    32   85     1.65
## 31    30   84     1.63
## 32    66   71     1.66
## 33    65   73     1.80
## 34    32   97     1.98
## 35    25   79     1.95
## 36    38   79     1.94
## 37    36   46     1.97
## 38    70   57     1.82
## 39    39   52     1.78
## 40    70   67     1.72
## 41    66   76     1.55
## 42    62   48     1.97
## 43    77   83     1.57
## 44    72   90     1.64
## 45    36   93     1.72
## 46    28   97     1.82
## 47    49   80     1.94
## 48    24   68     1.55
## 49    65   92     1.73
## 50    61   85     1.60
## 51    31   73     1.61
## 52    50   72     1.67
## 53    78   98     1.97
## 54    42   46     1.78
## 55    31   76     1.89
## 56    63   61     1.76
## 57    20   61     1.63
## 58    49   81     1.66
## 59    34   54     1.80
## 60    31   95     1.88
## 61    19   91     1.80
## 62    56   55     1.80
## 63    21   95     1.73
## 64    47   61     1.76
## 65    43   83     1.60
## 66    63   57     1.81
## 67    61   54     1.58
## 68    43   82     1.80
## 69    23   65     1.92
## 70    61   54     1.75
## 71    76   55     1.74
## 72    56   91     1.78
## 73    20   47     1.98
## 74    43   69     1.79
## 75    53   88     1.69
## 76    42   75     1.72
## 77    68   67     1.85
## 78    51   95     1.79
## 79    72   89     1.95
## 80    25   92     1.89
## 81    26   48     1.89
## 82    39   65     1.62
## 83    74   85     1.81
## 84    31   81     1.54
## 85    52   96     1.98
## 86    23   47     1.95
## 87    72   70     1.87
## 88    22   98     1.98
## 89    37   45     1.59
## 90    66   73     1.94
## 91    80   58     1.77
## 92    41   68     1.56
## 93    22   71     1.79
## 94    70   83     1.91
## 95    36   62     1.87
## 96    60   80     1.87
## 97    19   63     1.57
## 98    65   69     1.93
## 99    40   82     1.62
## 100   49   48     1.96
  1. La media
media.edad <- sum(personas$edad) / n
media.edad
## [1] 47.33
media.edad <- mean(personas$edad)
media.edad
## [1] 47.33
  1. La mediana
mediana.edad <- median(personas$edad)
mediana.edad
## [1] 47
orden.personas.edad <- sort(personas$edad)
posicion <- ceiling(n /2)

orden.personas.edad
##   [1] 19 19 19 20 20 20 21 21 22 22 22 23 23 24 24 25 25 26 26 28 30 31 31 31 31
##  [26] 32 32 32 34 34 35 36 36 36 37 38 39 39 40 40 41 41 42 42 42 43 43 43 46 47
##  [51] 47 47 49 49 49 50 51 52 52 53 54 56 56 58 60 60 60 61 61 61 62 62 63 63 63
##  [76] 65 65 65 66 66 66 66 67 68 68 68 70 70 70 72 72 72 72 74 74 74 76 77 78 80
# La posicion 
cat("Valor de la posición ",posicion, " del conjunto de datos (Vector) edades es: ", orden.personas.edad[posicion])      
## Valor de la posición  50  del conjunto de datos (Vector) edades es:  47
# La posición cuando son par
cat("Valor de la posición ",posicion + 1, " del conjunto de datos (Vector) edades es: ", orden.personas.edad[posicion + 1])
## Valor de la posición  51  del conjunto de datos (Vector) edades es:  47
mediana.edad <- sum(orden.personas.edad[posicion], orden.personas.edad[posicion + 1]) / 2
mediana.edad
## [1] 47
  1. La moda
frecuencia <- table(personas$edad)
frecuencia <- sort(frecuencia, decreasing = TRUE)
frecuencia
## 
## 31 66 72 19 20 22 32 36 42 43 47 49 60 61 63 65 68 70 74 21 23 24 25 26 34 39 
##  4  4  4  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  2  2  2  2  2  2  2 
## 40 41 52 56 62 28 30 35 37 38 46 50 51 53 54 58 67 76 77 78 80 
##  2  2  2  2  2  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1  1
moda <- frecuencia[1]
moda
## 31 
##  4
cat("La moda de edad es: ", names(moda), " con ", frecuencia[1])
## La moda de edad es:  31  con  4
print("¿Es una sola moda, bimodal o multimodal ?")
## [1] "¿Es una sola moda, bimodal o multimodal ?"
library(resumeRdesc)

moda <- Mode(personas$edad)
moda
## [1] 31 66 72
  1. Visualizar datos
ggplot(data = personas, aes(x = edad)) +
  geom_bar()

ggplot(data = personas, aes(x = edad)) +
  geom_histogram(bins = 20)

ggplot(personas, aes(x=edad)) + 
  geom_histogram(aes(fill=..count..), bins=30, color="pink") +
  geom_vline(aes(xintercept=mean(edad)), color="violet") +
  geom_vline(aes(xintercept=median(edad)), color= "yellow")

ggplot(aes(x = edad), data = personas) +
 geom_histogram(color = 'pink',
                fill = 'pink',
                alpha = 0.2) +
 labs(title = "Histograma de Edad") +
  geom_vline(aes(xintercept = median(edad),
                  color = "mediana"),
              linetype = "dashed",
              size = 1) +
   geom_vline(aes(xintercept = mean(edad),
                  color = "media"),
              linetype = "dashed",
              size = 1) +
  geom_vline(
     aes(xintercept = moda[1],
         color = "moda"),
     linetype = "dashed",
     size = 1
   )
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

  1. Interpretar y comunicar datos