1. Cargar librerias
library(readr)       # Por si acaso cargamos datos ...
library(ggplot2)     # Para visualizar
library(resumeRdesc) # Para estadísticos descriptivos
  1. Cargar o Contruir datos
set.seed(2020)
n <- 100   # Total de observaciones
edades <- sample(18:65, n, replace = TRUE)
pesos <- sample(47:100, n, replace = TRUE)
estaturas <- sample(149:205, n, replace = TRUE) /100

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

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

orden.personas.edad
##   [1] 18 18 18 18 19 19 19 20 20 21 21 21 22 22 22 23 23 23 24 24 25 25 27 27 29
##  [26] 30 30 30 30 30 31 31 31 32 33 33 33 34 34 35 35 35 36 37 38 38 39 39 40 40
##  [51] 41 41 41 41 41 42 42 42 43 43 45 45 46 46 46 48 48 48 49 50 50 51 51 52 53
##  [76] 55 55 57 57 58 59 59 59 60 60 60 61 61 61 62 62 62 64 64 64 65 65 65 65 65
# 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:  40
# 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:  41
mediana.edad <- sum(orden.personas.edad[posicion], orden.personas.edad[posicion + 1]) / 2
mediana.edad
## [1] 40.5
  1. La moda
frecuencia <- table(personas$edad)
frecuencia <- sort(frecuencia, decreasing = TRUE)
frecuencia
## 
## 30 41 65 18 19 21 22 23 31 33 35 42 46 48 59 60 61 62 64 20 24 25 27 34 38 39 
##  5  5  5  4  3  3  3  3  3  3  3  3  3  3  3  3  3  3  3  2  2  2  2  2  2  2 
## 40 43 45 50 51 55 57 29 32 36 37 49 52 53 58 
##  2  2  2  2  2  2  2  1  1  1  1  1  1  1  1
moda <- frecuencia[1]
moda
## 30 
##  5
cat("La moda de edad es: ", names(moda), " con ", frecuencia[1])
## La moda de edad es:  30  con  5
print("¿Es una sola moda, bimodal o multimodal ?")
## [1] "¿Es una sola moda, bimodal o multimodal ?"
library(resumeRdesc)

moda <- Mode(personas$edad)
moda
## [1] 30 41 65
  1. Visualizar Datos
ggplot(data = personas, aes(x = edad)) +
  geom_bar()

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

ggplot(personas, aes(x=edad)) + 
  geom_histogram(aes(fill=..count..), bins=20, color="black") +
  geom_vline(aes(xintercept=mean(edad)), color="orange") +
  geom_vline(aes(xintercept=median(edad)), color= "red")

ggplot(aes(x = edad), data = personas) +
 geom_histogram(color = 'blue',
                fill = 'blue',
                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 ‘’Al finalizar el caso, se da a saber que la MEDIA es de 40.72, la MEDIANA 40.5 y la MODA 30,5’’